反射:通过二进制的class文件,得到类里面的属性,如方法、构造、成员变量
感受:通过类名加载类,生成实例
static Class<?> | forName(String className) 返回与带有给定字符串名的类或接口相关联的 Class 对象。 |
className就是已经定义的类名 |
T | newInstance() 创建此 Class 对象所表示的类的一个新实例。 |
public class Test {
public static void main(String[] args) throws Exception {
String str = "T"; //名为T的类
Class clazz = Class.forName(str); // 加载类T,返回一个Class对象
clazz.newInstance(); //创建一个T的实例
}
class T{
static {
System.out.println("T loaded");
}
public T() {
System.out.println("构造被调用");
}
}
输出结果:T loaded
构造被调用
在Mybatis中用此方式将类名放到配置文件就能动态加载实体类Employee