- 反射主要对象
- Class
- Constructor
- Field
- Method
- API-Class
- 获取Class对象
Object.getClass()
className.class
Class.forName()
Class.getComponentType()
获得数组对象的元素类型
- 获取Class信息
getDeclaredClasses()
返回在类中定义的公共、私有、保护的内部类和接口。但不包括继承的内部类和接口getClasses()
返回在类中定义的公共的内部类和接口,以及从父类、父接口那里继承来的内部类和接口getClassLoader()
返回加载此类的类加载器
getConstructors()
返回public构造器getDeclaredConstructors()
返回所有构造器getFields()
获取所有public成员变量getDeclaredFields()
获取所有成员变量
getDeclaredMethods()
获取此类所有的public方法,包括继承getDeclaredMethods()
获取在此类中定义的所有方法(public, private), 但不包括继承的方法
- 产生对象
newInstance()
只能使用无参构造器
- 获取Class对象
- API-Field
- 获取类的成员变量信息(包括类变量和实例变量)
- 获取变量名
field.getName()
- 获取变量类型
field.getType()
- 获取变量的参数类型,针对泛型
field.getGenericType()
- 获取变量修饰符
field.getModifiers()
含义见Modifier类
- 获取变量所在的类
field.getDeclaringClass()
- 获取变量名
- 读写成员变量的值
读取成员变量的值
// public field.get(foo) // private field.setAccessible(true) field.get(foo)
修改成员变量的值
field.set(foo, "123") // private field.setAccessible(true) field.set(foo, "123")
- 获取类的成员变量信息(包括类变量和实例变量)
- API-Method
- 获取方法信息
method.getName()
- ...
- 反射调用方法
method.invoke()
- 获取方法信息
- API-Constructor
newInstance()
生成对象,可以使用带参构造器
java反射API
猜你喜欢
转载自www.cnblogs.com/bosslv/p/11364780.html
今日推荐
周排行