144 REF_newInvokeSpecial = Constants.REF_newInvokeSpecial,
145 REF_invokeInterface = Constants.REF_invokeInterface;
146
147 /**
148 * Returns the reference kind of the cracked method handle, which in turn
149 * determines whether the method handle's underlying member was a constructor, method, or field.
150 * See the <a href="MethodHandleInfo.html#refkinds">table above</a> for definitions.
151 * @return the integer code for the kind of reference used to access the underlying member
152 */
153 public int getReferenceKind();
154
155 /**
156 * Returns the class in which the cracked method handle's underlying member was defined.
157 * @return the declaring class of the underlying member
158 */
159 public Class<?> getDeclaringClass();
160
161 /**
162 * Returns the name of the cracked method handle's underlying member.
163 * This is {@code "<init>"} if the underlying member was a constructor,
164 * else it is a simple method name or field name.
165 * @return the simple name of the underlying member
166 */
167 public String getName();
168
169 /**
170 * Returns the nominal type of the cracked symbolic reference, expressed as a method type.
171 * If the reference is to a constructor, the return type will be {@code void}.
172 * If it is to a non-static method, the method type will not mention the {@code this} parameter.
173 * If it is to a field and the requested access is to read the field,
174 * the method type will have no parameters and return the field type.
175 * If it is to a field and the requested access is to write the field,
176 * the method type will have one parameter of the field type and return {@code void}.
177 * <p>
178 * Note that original direct method handle may include a leading {@code this} parameter,
179 * or (in the case of a constructor) will replace the {@code void} return type
180 * with the constructed class.
181 * The nominal type does not include any {@code this} parameter,
182 * and (in the case of a constructor) will return {@code void}.
183 * @return the type of the underlying member, expressed as a method type
184 */
|
144 REF_newInvokeSpecial = Constants.REF_newInvokeSpecial,
145 REF_invokeInterface = Constants.REF_invokeInterface;
146
147 /**
148 * Returns the reference kind of the cracked method handle, which in turn
149 * determines whether the method handle's underlying member was a constructor, method, or field.
150 * See the <a href="MethodHandleInfo.html#refkinds">table above</a> for definitions.
151 * @return the integer code for the kind of reference used to access the underlying member
152 */
153 public int getReferenceKind();
154
155 /**
156 * Returns the class in which the cracked method handle's underlying member was defined.
157 * @return the declaring class of the underlying member
158 */
159 public Class<?> getDeclaringClass();
160
161 /**
162 * Returns the name of the cracked method handle's underlying member.
163 * This is {@code "<init>"} if the underlying member was a constructor,
164 * or {@code "<vnew>"} if the underlying member was a value class static
165 * factory method, else it is a simple method name or field name.
166 * was a constructor, else it is a simple method name or field name.
167 * @return the simple name of the underlying member
168 */
169 public String getName();
170
171 /**
172 * Returns the nominal type of the cracked symbolic reference, expressed as a method type.
173 * If the reference is to a constructor, the return type will be {@code void}.
174 * If it is to a non-static method, the method type will not mention the {@code this} parameter.
175 * If it is to a field and the requested access is to read the field,
176 * the method type will have no parameters and return the field type.
177 * If it is to a field and the requested access is to write the field,
178 * the method type will have one parameter of the field type and return {@code void}.
179 * <p>
180 * Note that original direct method handle may include a leading {@code this} parameter,
181 * or (in the case of a constructor) will replace the {@code void} return type
182 * with the constructed class.
183 * The nominal type does not include any {@code this} parameter,
184 * and (in the case of a constructor) will return {@code void}.
185 * @return the type of the underlying member, expressed as a method type
186 */
|