反射 Reflect
- 通过方法区加载的"类对象"来执行
- 获得一个类的定义信息
- 包名、类名
- 成员变量定义信息
- 构造方法定义信息
- 方法定义信息
- 反射新建对象
- 反射访问成员变量
- 反射调用方法
类对象
- 类名.class;
- Class.forName(“完整类名”);
- 实例.getClass(); 获得类对象
包名、类名
Class c = …
- c.getPackage().getName(); 包名
- c.getName(); 类名
- c.getSimpleName(); 类名,不包含包名
- c.getResource(""); 获取资源,""中以/开头则获取根目录下的资源,没有/开头则为该类对象的相对路径资源
- getPath();获得完整路径
成员变量定义信息
- getFields(); 获得可见的成员变量,包含从父类继承的
- getDeclaredFieds(); 获得本类定义的成员变量,不包含继承,但是包含私有的
- getField(变量名); 获得一个变量,包含继承
- gerDeclaredField(变量名); 获得一个变量,本类定义的
构造方法的定义信息
- getConstructors(); 获得可见的构造方法
- getDeclaredCo