调用该方法返回一个以字符串指定类名的类的对象。
也就是说,可以使用forName函数,根据类的全路径动态的创建这个类的对象。
用例代码:
package cn.zealon.multiple;
import java.util.Date;
/**
* class.forName的作用
* @Author: zealon
* @Version: 1.0
*/
public class UseClassForName {
public static void main(String[] args){
try {
//使用forName ,按类的全路径名,动态创建Class
Class<?> date = Class.forName("java.util.Date");
//通过Class,创建实例对象
Date dateInstance = (Date) date.newInstance();
System.out.println(dateInstance.toString());
} catch (ClassNotFoundException e) {
e.printStackTrace();
}catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
输出结果:
Sun Jul 01 20:23:33 CST 2017
有时候,我们程序中所有使用的具体类名在设计时(开发时)无法确定,只有程序运行时才能确定,这时候就需要使用Class.forName去动态加载该类,这个类名通常在配置文件中配置。
例如spring的ioc中每次依赖注入的具体类就是这样配置的。
例如jdbc驱动类名通常也是通过配置文件来配置的,以便在产品交付使用后不用修改源代码就可以更换驱动类名。
作者: Zealon
崇尚简单,一切简单自然的事物都是美好的。