反射

Java的反射(reflection)机制是指在程序的运行状态中,可以构造任意一个类的对象,可以了解任意一个对象所属的类,可以了解任意一个类的成员变量和方法,可以调用任意一个对象的属性和方法,这种动态获取程序信息以及动态调用对象的功能称为Java语言的反射机制,反射被视为动态语言的关键

反射的过程

类的生命周期
通过上述知识点可知,类加载后会在堆中生成一个Class对象作为访问运行时动态数据的入口,也就是访问具体Java类的信息,如此便能通过Class对象实现各种操作,如创建类实例,获取类属性等;可以将获取Class对象理解为使用反射机制的开端

反射的特点

  • 灵活性高,可在运行时动态获取类实例,常用于容器管理,抽象编程,策略模式以及模板方法模式中
  • 性能比直接指定类型要低,需要解析字节码,动态获取类对象

获取Class对象

  • 全路径名
Class.forName("java.lang.String");
  • 类名.class
String.class
  • 对象.getClass()
String a = "123";
  a.getClass();

老污的猫
30 声望5 粉丝