反射机制可以帮助程序摆脱对关键字“new”的依赖,通过反射获取实例化对象。
1、反射实例化对象的例子:
package com.mydemo;
public class ReflectionMechanismDemo {
public static void main(String[] args) throws Exception {
// 获取Class类实例化对象
Class<?> clazz = Class.forName("com.mydemo.Member");
/**
* 反射机制可以获取任意类实例化对象(等价于关键字new),所以返回类型为Object
*/
// 获取指定类提供的无参构造方法并进行对象实例化
Object object = clazz.getDeclaredConstructor().newInstance();
System.out.println(object);
}
}
class Member {
// 构造方法
public Member() {
System.out.println("【构造方法】实例化Member类对象");
}
@Override
public String toString() {
return "【toString()覆写】------反射机制来实例化对象";
}
}
运行结果:
【构造方法】实例化Member类对象
【toString()覆写】------反射机制来实例化对象