See More

--------------------- 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¶ÔÏó