反射
Java的反射(reflection)机制是指在程序的运行状态中,可以构造任意一个类的对象,可以了解任意一个对象所属的类,可以了解任意一个类的成员变量和方法,可以调用任意一个对象的属性和方法,这种动态获取程序信息以及动态调用对象的功能称为Java语言的反射机制,反射被视为动态语言的关键
反射的过程
类的生命周期
通过上述知识点可知,类加载后会在堆中生成一个Class对象作为访问运行时动态数据的入口,也就是访问具体Java类的信息,如此便能通过Class对象实现各种操作,如创建类实例,获取类属性等;可以将获取Class对象理解为使用反射机制的开端
反射的特点
- 灵活性高,可在运行时动态获取类实例,常用于容器管理,抽象编程,策略模式以及模板方法模式中
- 性能比直接指定类型要低,需要解析字节码,动态获取类对象
获取Class对象
- 全路径名
Class.forName("java.lang.String");
- 类名.class
String.class
- 对象.getClass()
String a = "123";
a.getClass();
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。