在已经知道类名时,例如类名为AA,那么Class.forName(“AA”).newInstance和new AA()都可以创建AA类的实例。
但是考虑另一种情况,若类名是从配置文件中读取的,而且你在编程时,此配置文件是空的。此配置文件是由客户自己指定的。那么在你在编程时,你还能用new xx()来创建实例吗?
显然不能,这时就要用到Class.forName,即反射。
例如:
客户老王,设置配置文件内容为:classname=“AA”;
客户老张,设置配置文件内容为:classname=“BB”;
不论客户怎么设置,你只需这样编程:
String str=getClassName(File f);
Class c=Class.forName(str);
c.newInstance();
Class.forName("AA").newInstance和new AA()的区别
最新推荐文章于 2023-02-15 14:55:10 发布