---------------------
java.reflect.Class |
---------------------
---------------------
ʵÀý·½·¨ |
---------------------
AgetAnnotation(Class annotationClass);
* »ñȡָ¶¨ÀàÐ͵Ä×¢½â,Èç¹û¸ÃÀàδ±êʶ,Ôò·µ»Ønull
Annotation[] getAnnotations();
* »ñÈ¡Ëù¸ÃÀàÉϱêʶµÄËùÓÐ×¢½â
boolean isAnnotationPresent(Class extends Annotation> annotationClass)
* Èç¹ûÖ¸¶¨ÀàÐ͵Ä×¢ÊÍ´æÔÚÓÚ´ËÔªËØÉÏ£¬Ôò·µ»Ø true£¬·ñÔò·µ»Ø false¡£
ClassLoader getClassLoader();
* »ñÈ¡Àà¼ÓÔØÆ÷
Constructor getConstructor(Class>... parameterTypes)
* ·µ»ØÒ»¸ö public ÐÞÊ뵀 Constructor (¹¹ÔìÆ÷)¶ÔÏó ,ÊǸù¾Ý²ÎÊýÀ´»ñÈ¡
Constructor[] getConstructors() ;
* »ñÈ¡ËùÓеĹ«¹²¹¹Ôì·½·¨¶ÔÏó
Field getField(String filedName);
* »ñȡָ¶¨Ãû³ÆµÄ×ֶζÔÏó,±ØÐëÊÇ public ÐÞÊεÄ,·ñÔòÅ׳öÒì³£
Field getDeclaredField(String filedName);
* »ñȡָ¶¨Ãû³ÆµÄ×ֶζÔÏó,¿ÉÒÔÊÇÈκÎȨÏÞÐÞÊηûÐÞÊεÄ
Field[] getFields();
* ·µ»Ø¸ÃÀàËùÓÐ public ÐÞÊεÄ×ֶζÔÏó
Field[] getDeclaredFields()
* ·µ»Ø¸ÃÀàËùÓеÄ×ֶζÔÏó
Method getMethod(String name, Class>... parameterTypes);
* ¸ù¾Ý·½·¨Ãû³Æ,ÒÔ¼°²ÎÊýÃèÊöÀ´»ñȡһ¸ö·½·¨¶ÔÏó
Method[] c.getMethods();
* ·µ»ØµÄÊÇËùÓÐµÄ public ·½·¨,²»°üº¬´Ó¸¸Àà¼Ì³ÐµÄ
T newInstance();
* ʹÓÃÎ޲ι¹ÔìÆ÷´´½¨Ò»¸öеĶÔÏó
boolean isInterface();
* ÅжÏÊÇ·ñÊǽӿÚ
boolean isEnum();
* ÅжÏÊÇ·ñÊÇö¾Ù
boolean isArray();
* ÊÇ·ñÊÇÊý×é
boolean isPrimitive();
* ÅжÏÊÇ·ñÊÇÔʼÊý¾ÝÀàÐÍÀà¶ÔÏó
int.class.isPrimitive() => true
Integer.class.isPrimitive() => false
boolean isInstance(Object obj);
* ÅжÏÖ¸¶¨µÄ¶ÔÏó,ÊÇ·ñÊǵ±Ç°classµÄÀàÐÍ,»òÕß×ÓÀà
Class>[] getInterfaces()
* »ñÈ¡µ±Ç°ÀàʵÏÖµÄËùÓнӿÚ
InputStream getResourceAsStream(String name);
* ·Ç'/'¿ªÍ·Ê±Ä¬ÈÏÊÇ´Ó´ËÀàËùÔڵİüÏÂÈ¡×ÊÔ´
* ÒÔ'/'¿ªÍ·ÔòÊÇ´ÓClassPath¸ùÏ»ñÈ¡¡£ÆäÖ»ÊÇͨ¹ýpath¹¹ÔìÒ»¸ö¾ø¶Ô·¾¶£¬×îÖÕ»¹ÊÇÓÉClassLoader»ñÈ¡×ÊÔ´¡£
boolean isAssignableFrom(Class clazz);
* Åжϵ±Ç° Class,ÊÇ·ñÊÇ clazz µÄ¸¸Àà,»òÕßͬÀà
* ˵°×ÁË,¾ÍÊÇÅжÏÊÇ·ñ¿ÉÒÔǿת
T[] getEnumConstants()
* Èç¹û´Ë Class ¶ÔÏó²»±íʾö¾ÙÀàÐÍ£¬Ôò·µ»ØÃ¶¾ÙÀàµÄÔªËØ»ò null¡£
* ÒÔÉùÃ÷˳Ðò·µ»ØÒ»¸öÊý×飬¸ÃÊý×é°üº¬¹¹³É´Ë Class ¶ÔÏóËù±íʾµÄö¾ÙÀàµÄÖµ£¬»òÕßÔÚ´Ë Class ¶ÔÏó²»±íʾö¾ÙÀàÐÍʱ·µ»Ø null
int getModifiers()
* ·µ»ØÈ¨ÏÞÐÞÊεıíʾÊýÖµ(public,private,native,final....)
Class> getSuperclass();
* »ñȡֱ½Ó¸¸ÀàÀàʵÀý
Type getGenericSuperclass()
* ·µ»Ø¸¸Àà,Èç¹ûÊÇ·ºÐ͵ϰ,·µ»Ø:ParameterizedType
* ¿ÉÒÔ»ñÈ¡µ½·ºÐÍÁбí
Class extends Sub> clazz = Sub.class;
Type type = clazz.getGenericSuperclass();
if(type instanceof ParameterizedType){ // ·ºÐ͸¸Àà
ParameterizedType parameterizedType = (ParameterizedType) type;
// »ñÈ¡µ½¸¸ÀàµÄ·ºÐÍÁбí
Type[] actualTypeArguments = parameterizedType.getActualTypeArguments();
Stream.of(actualTypeArguments).forEach(System.out::println);
}
---------------------
¾²Ì¬·½·¨ |
---------------------
Class forName(String className);
* ¼ÓÔØÖ¸¶¨µÄÀൽÄÚ´æ,²¢»ñÈ¡µ½Class¶ÔÏó