反射四大核心类:Class、Constructor、Method、 Filed
Class
获取Class的三种方式:
1:Class.forNmae(String className) className:完整路径类名
2:任意对象.getClass()
3:类名.class
Class获取Constructor
方法 | 说明 |
---|
newInstance() | 创建对象,默认无参构造 |
getConstructor(Class<?> … parameterTypes) | 获取类中public修饰的,指定参数类型的构造方法 |
getConstructors() | 获取类中public修饰的所有构造方法 |
getDeclaredConstructor(Class<?>… parameterTypes) | 获取类中指定参数类型的构造方法,无关修饰 |
getDeclaredConstructors() | 获取类的所有构造方法,无关修饰 |
Class获取Method
方法 | 说明 |
---|
getMethod(String name, Class<?>… parameterTypes) | 根据方法名,方法参数获取对应方法。范围:本类和所有继承类的public所修饰的方法 |
getMethods() | 获取所有的方法 。范围:本类和所有继承类的public所修饰的方法 |
getDeclaredMethod(String name, Class<?>… parameterTypes) | 根据方法名,方法参数获取对应方法。范围:本类所有的方法,无关修饰 |
getDeclaredMethods() | 获取本类中所有的方法 |
Class获取Filed
方法 | 说明 |
---|
getField(String name) | 根据字段名获取对应字段。范围:本类和所有继承类的public所修饰的字段 |
getFileds() | 获取所有的字段 。范围:本类和所有继承类的public所修饰的字段 |
getDeclaredField(String name) | 根据字段名,获取对应字段。范围:本类所有的字段,无关修饰 |
getDeclaredFileds() | 获取本类中所有的字段,无关修饰 |
Method相关方法
方法 | 说明 |
---|
getName() | 获取方法名 |
isVarArgs() | 如果该方法声明为采用可变数量的参数,则返回true; 否则返回false |
getModifiers() | 获取权限修饰符 |
getReturnType() | 获取返回类型 |
getExceptionTypes() | 获取所有抛出的异常类型 |
getParameterTypes() | 获取所有参数的类型 |
getParameterCount() | 获取所有参数的个数 |
getAnnotations() | 获取修饰该方法的注解集合 |
getAnnotation(Class annotationClass) | 获取指定的注解信息 |
getDeclaringClass | 获取方法所在的类的.class对象 |
invoke(Object obj, Object… args) | 方法调用,获取返回值 |
Filed相关方法
方法 | 说明 |
---|
getType() | 返回这个变量的类型 |
getAnnotation(Class annotationClass) | 获取字段上的指定注解 |
getDeclaringClass() | 获取字段所在的类的.class对象 |
getDeclaredAnnotations() | 获取修饰该字段的结果集 |
get(Object obj) | 获取obj该字段的值 |
set(Object obj, Object value) | 对obj该字段设值 |