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()方法時,如果不存在無參的構(gòu)造函數(shù),也會報找不到Printer類。
這一點(diǎn)很容易忽略,而且很難找到錯誤,我們經(jīng)常會寫一些帶參數(shù)的構(gòu)造函數(shù)。而此處的newInstance()方法是會調(diào)用默認(rèn)構(gòu)造函數(shù),如果不存在會拋出找不到類的異常。
posted on 2007-11-05 14:48
CoderDream 閱讀(255)
評論(0) 編輯 收藏 所屬分類:
經(jīng)驗(yàn)點(diǎn)滴