我的意思是, 拋開概念不談..public?static?<T>?T?getInstance(Class<T>?clz){
try?{
return?(T)?clz.newInstance();
}?catch?(Exception?e)?{
e.printStackTrace();
}
return?null;
}
public?static?<T>?T?getInstance(Class<T>?clz){
try?{
return?(T)?Class.forName(clz.getName()).newInstance();
}?catch?(Exception?e)?{
e.printStackTrace();
}
return?null;
}這兩種方式, 在使用時(shí)會(huì)有不同嗎?
1 回答
已采納

大咪
TA貢獻(xiàn)785條經(jīng)驗(yàn) 獲得超332個(gè)贊
Class.forName("XXXX");的作用是要求JVM查找并加載指定的類,如果在類中有靜態(tài)初始化的話, JVM必然會(huì)執(zhí)行該類的靜態(tài)代碼段,這時(shí)是不確定該類是否已經(jīng)在JVM中加載。 而XXXX.class是在JVM中加載已經(jīng)加載過的類。
添加回答
舉報(bào)
0/150
提交
取消