获取成员变量们
获取所有public修饰的成员变量的(包括父类的public修饰的变量)
1.Field[] getFields()
获取所有的成员变量,但不包括父类的变量
2.Field[] getDeclaredFields()
3.Field getField(String name)
4.Field getDeclaredField(String name)
获取构造方法们
1.Constructor<?>[] getConstructors()
2.Constructor<?>[] getDeclaredConstructors()
3.Constructor<T> getConstructor(Class<?>... parameterTypes)
4.Constructor<T> getDeclaredConstructor(Class<?>... parameterTypes)
获取成员方法们
1.Method[] getMethods()
2.Method[] getDeclaredMethods()
3.Method getMethod(String name, Class<?>... parameterTypes)
4.Method getDeclaredMethod(String name, Class<?>... parameterTypes)
获取类名
String getName()
忽略访问权限修饰符的检查,如果是使用private修饰的话需要该方法
setAccessible(true);
Field:成员变量
1.设置值:
obj:需要修改值的对象,value:该字段的新值
void set(Object obj, Object value)
2.获取值
obj:需要获取值的对象
Object get(Object obj)
Constructor:构造方法
1.创建对象
T newInstance(Object ... initargs)
如果使用空参数的构造函数可以使用以下方法
clazz.getDeclaredConstructor().newInstance()
Method:方法对象
1.获取方法对象
2.执行方法
obj:需要执行方法的对象 args:方法需要的参数
Object invoke(Object obj, Object... args)
boolean isAnnotationPresent(Class<? extends Annotation> annotationType)
Annotation[] getAnnotations()
<T extends Annotation> T getAnnotation(Class<T> annotationClass)
<T extends Annotation> T[] getAnnotationsByType(Class<T> annotationClass)
Annotation[] getDeclaredAnnotations()
<T extends Annotation> T getDeclaredAnnotation(Class<T> annotationClass)
<T extends Annotation> T[] getDeclaredAnnotationsByType(Class<T> annotationClass)