概述
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;
对于任意一个对象,都能够调用它的任意方法和属性;
这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。
相关类
| 类名 |
用途 |
| Class类 |
代表类的实体,在运行的Java应用程序中表示类和接口 |
| Field类 |
代表类的成员变量(成员变量也称为类的属性) |
| Method类 |
代表类的方法 |
| Constructor类 |
代表类的构造方法 |
Class类
重要方法
| 方法 |
用途 |
| getName |
获取类的名字 |
| forName(String className) |
根据类名返回类的对象 |
| newInstance |
创建类的实例 |
| 方法 |
用途 |
| getField(String name) |
获得某个公有的属性对象 |
| getFields() |
获得所有公有的属性对象 |
| getDeclaredField(String name) |
获得某个属性对象 |
| getDeclaredFields() |
获得所有属性对象 |
| 方法 |
用途 |
| getMethod(String name, Class...<?> parameterTypes) |
获得该类某个公有的方法 |
| getMethods() |
获得该类所有公有的方法 |
| getDeclaredMethod(String name, Class...<?> parameterTypes) |
获得该类某个方法 |
| getDeclaredMethods() |
获得该类所有方法(不包括从超类继承的方法) |
Filed类
| 方法 |
用途 |
| equals(Object obj) |
属性与obj相等则返回true |
| get(Object obj) |
获得obj中对应的属性值 |
| set(Object obj, Object value) |
设置obj中对应属性值 |
Method类
| 方法 |
用途 |
| invoke(Object obj, Object... args) |
传递object对象及参数调用该对象对应的方法 |
Constructor类
| 方法 |
用途 |
| newInstance(Object... initargs) |
根据传递的参数创建类的对象 |