一. 反射机制的作用
- 得到一个对象所属的类;
- 获取一个类的所有成员变量和方法;
- 在运行时创建对象;
- 在运行时调用对象的方法。
【重要作用】在运行时动态地创建类的对象
二. 代码示例
-
Base类
public class Base { public void f() { System.out.println("Base"); } }
-
Sub类
public class Sub extends Base { public void f() { System.out.println("Sub"); } }
-
Test类
public class Test { public static void main(String [] args) { try{ //使用反射机制加载类 Class c = Class.forName("Sub"); Base b = (Base) c.newInstance(); b.f(); } catch (Exception e) { e.printStackTrace(); } } }
-
运行结果
Sub
三. 知识补充
-
获取Class类的三种方法
a. Class.forName(“类的路径”);
b. 类名.Class;
c. 实例.getClass(); -
newInstance()方法的作用
主要作用是在内存中生成一个实例,而这个方法在使用前必须得保证:①这个类被加载到内存中,②这个类已经被连接,而完成以上两个过程的是Class.forName()方法 -
Java创建对象的四种方式:
a. 通过new语句实例化对象;
b. 通过反射机制创建对象;
c. 通过clone()方法创建对象;
d. 通过反序列化的方式创建对象。