Java 反射
什么是反射:
在运行状态中,对于任意一个类都能知道它的所有属性和方法,对于任意一个对象都能调用它的任意方法和属性,这种动态获取信息及调用对象方法的功能称为反射。
缺点是破坏了封装性以及泛型约束。
- 反射是框架的核心,Spring 大量使用反射。
Class 类的作用:
在程序运行期间,Java 运行时系统为所有对象维护一个运行时类型标识,这个信息会跟踪每个对象所属的类,虚拟机利用运行时类型信息选择要执行的正确方法,保存这些信息的类就是 Class,这是一个泛型类。
如何获取一个 Class 对象:
- 类名.class
Class c1 = User.class;
- 对象的 getClass方法
User user = new User();
Class c1 = user.getClass();
- Class.forName(类的全限定名)。
Class c1 = Class.forName("com.xxx.xxx.User"); // 包名+类名