這個(gè)也沒有解決說如果excel沒有這個(gè)類還能運(yùn)行啊
public?class?test?{ public?static?void?main(String[]?args)?{ //?TODO?Auto-generated?method?stub ???????? if("word".equals(args[0])){ Class?c; try?{ c?=?Class.forName(args[0]); word?w=(word)c.newInstance(); w.start(); }?catch?(ClassNotFoundException?e)?{ //?TODO?Auto-generated?catch?block e.printStackTrace(); }?catch?(InstantiationException?e)?{ //?TODO?Auto-generated?catch?block e.printStackTrace(); }?catch?(IllegalAccessException?e)?{ //?TODO?Auto-generated?catch?block e.printStackTrace(); } } if("excel".equals(args[0])){ Class?c; try?{ c?=?Class.forName(args[0]); excel?e=(excel)c.newInstance(); e.start(); }?catch?(ClassNotFoundException?e)?{ //?TODO?Auto-generated?catch?block e.printStackTrace(); }?catch?(InstantiationException?e)?{ //?TODO?Auto-generated?catch?block e.printStackTrace(); }?catch?(IllegalAccessException?e)?{ //?TODO?Auto-generated?catch?block e.printStackTrace(); } } ???????? } }
如果我沒有excel的類,在編譯時(shí)還是會(huì)報(bào)錯(cuò),并不能實(shí)現(xiàn)這個(gè)功能,
難道說只能用接口,那樣只能體現(xiàn)接口的作用
2016-08-05
之所以會(huì)報(bào)錯(cuò)是因?yàn)檫@里使用的是靜態(tài)加載,在目錄下沒有寫excel的類當(dāng)然會(huì)報(bào)錯(cuò)了
老師講的意思是如何在Excel類有問題的情況下使用沒有問題的Word類的方法,首先就是要通過編譯才能使用
如何在Excel類有問題的情況下通過編譯呢,就是使用動(dòng)態(tài)加載了,也就是說當(dāng)某個(gè)類在要使用的時(shí)候才進(jìn)行相關(guān)的編譯與加載,不使用的話就不加載,這樣這個(gè)程序作為整體來說就可以運(yùn)行沒有問題的Word類和方法,只有運(yùn)行到錯(cuò)誤的Excel類的方法的時(shí)候,程序才會(huì)提示錯(cuò)誤。
所以這個(gè)問題的關(guān)鍵核心在于:
如何在一個(gè)可能存在錯(cuò)誤類的情況下盡可能使用沒有存在錯(cuò)誤的類,而不是如何解決錯(cuò)誤的類。
2016-08-05
編譯時(shí)還是會(huì)報(bào)錯(cuò)是因?yàn)榫幾g器監(jiān)測(cè)了此處使用excel的語法錯(cuò)誤(未定義excel類)