---------------------
java.reflect.Method |
---------------------
---------------------
ʵÀý·½·¨ |
---------------------
invoke(Object obj,Object value...);
* ÒÔ·´ÉäµÄ·½·¨Ö´Ðз½·¨¶ÔÏó,µÚÒ»¸ö²ÎÊý±íʾÊÇÄĸö¶ÔÏóµÄ´Ë·½·¨,µÚ¶þ¸ö²ÎÊý±íʾ·½·¨²ÎÊý,Èç¹ûûÓÐÖ±½ÓÎÞÊÓ¼´¿É
getAnnotation(Class annotationClass)
* Èç¹û´æÔÚ¸ÃÔªËØµÄÖ¸¶¨ÀàÐ͵Ä×¢ÊÍ£¬Ôò·µ»ØÕâЩעÊÍ£¬·ñÔò·µ»Ø null¡£
Annotation[] getDeclaredAnnotations();
* »ñÈ¡¸Ã·½·¨ËùÓеÄ×¢½â
boolean isAnnotationPresent(Class extends Annotation> annotationClass);
* ÅжÏÊÇ·ñÓÐÖ¸¶¨ÀàÐ͵Ä×¢½â±êʶÔڸ÷½·¨
int getModifiers()
* ·µ»ØÈ¨ÏÞÐÞÊεıíʾÊýÖµ(public,private,native,final....)
Class> getReturnType()
* ·µ»Ø return µÄClassÀàÀàÐÍ
boolean isBridge()
* ÊÇ·ñÊÇ·ºÐÍÇŽӷ½·¨
* ÇŽӷ½·¨ÊÇ JDK 1.5 ÒýÈë·ºÐͺó,ΪÁËʹJavaµÄ·ºÐÍ·½·¨Éú³ÉµÄ×Ö½ÚÂëºÍ 1.5 °æ±¾Ç°µÄ×Ö½ÚÂëÏà¼æÈÝ
* ÓɱàÒëÆ÷×Ô¶¯Éú³ÉµÄ·½·¨
interface Parent {
void foo(T t);
}
class Sub implements Parent {
@Override
public void foo(String s) {
System.out.println(s);
}
// JVM±àÒëÆ÷Éú³ÉµÄÇŽӷ½·¨
// public void foo(Object s) {
// this.foo((String) s);
// }
}
Method bridgeMethod = Sub.class.getMethod("foo",Object.class);
System.out.println(bridgeMethod.isBridge()); // true
Method method = Sub.class.getMethod("foo",String.class);
System.out.println(method.isBridge()); // false