反射
Java的反射(reflection)机制是指在程序的运行状态中,能够结构任意一个类的对象,能够理解任意一个对象所属的类,能够理解任意一个类的成员变量和办法,能够调用任意一个对象的属性和办法,这种动静获取程序信息以及动静调用对象的性能称为Java语言的反射机制,反射被视为动静语言的要害
反射的过程
类的生命周期
通过上述知识点可知,类加载后会在堆中生成一个Class对象作为拜访运行时动态数据的入口,也就是拜访具体Java类的信息,如果便能通过Class对象实现各种操作,如创立类实例,获取类属性等;能够将获取Class对象了解为应用反射机制的开始
反射的特点
- 灵活性高,可在运行时动静获取类实例,罕用于容器治理,形象编程,策略模式以及模板办法模式中
- 性能比间接指定类型要低,须要解析字节码,动静获取类对象
获取Class对象
- 全路径名
Class.forName("java.lang.String");
- 类名.class
String.class
- 对象.getClass()
String a = "123"; a.getClass();