要点
- Class.forName(pacage.className)返回的是一个类 Class.forName(pacage.className).newInstance()返回的是object
- A a = new A(); 等同于 A a = (A)Class.forName(“pacage.A”).newInstance();
- 需要配合 try catch 使用
- 如果要 forName 某个类,也需要相应的 import 这个类。如果已经 import 父类,其子类不需再次 import。
newInstance()和new有什么区别
- newInstance( )是一个方法,而new是一个关键字
- Class下的newInstance()的使用有局限,只能调用无参的构造函数,而使用new关键字生成对象没有这个限制
示例代码
import com.asiainfo.cr.crawl.task.TestOne;
public