Class类中,我们使用最多的就是forName()方法和newInstance()方法。
1、使用forName()方法时,即使引用同一个包中的类,也要写完整的包名,如:
try {
Printable p1 = (Printable) Class.forName(
"com.coderdream.chapter21.proxy.a1.Printer").newInstance();
} catch (Exception e) {
System.out.println("Nooo");
}
接口Printable和类Printer在同一个包中,但也要写完整的包名,否则抛出异常,提示找不到Printer类。
2、使用newInstance()方法时,如果不存在无参的构造函数,也会报找不到Printer类。
这一点很容易忽略,而且很难找到错误,我们经常会写一些带参数的构造函数。而此处的newInstance()方法是会调用默认构造函数,如果不存在会抛出找不到类的异常。
posted on 2007-11-05 14:48
CoderDream 阅读(246)
评论(0) 编辑 收藏 所属分类:
经验点滴