< prev index next >

src/java.base/share/classes/java/lang/invoke/MethodHandleInfo.java

Print this page

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      */
< prev index next >