Java 反射
Class 类类型
理解java反射,有助于深入理解java面向对象思想,即万事万物皆对象(除了基本数据类型和静态成员变量)
- 类是对象,是 java.lang.Class 的对象,称 Class 为类的类类型
- 方法是对象,是 java.lang.reflect.Method 的对象
- 成员变量是对象,是 import java.lang.reflect.Field 的对象
- 构造方法是对象, 是 java.lang.reflect.Constructor 的对象
- void 也是对象
获取类类型的三种方法
// 1、通过.class方式获取
Class c1 = User.class;
// 2、通过对象获取
User user = new User();
Class c2 = user.getClass();
// 3、通过类路径获取
Class c3 = null;
try {
c3 = Class.forName("com.reflact.bean.User");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
动态加载类及使用类类型创建对象
new方式在编译时加载所有可能用到的类(静态加载类),如果存在一个使用到的类未声明,则编译报错,而编译通过所加载的类不一定都