Ryan Delucchi問評論#3 here到Tom Hawtin的回答是:爲什麼Class.newInstance()「邪惡」?
爲什麼Class.newInstance() 「惡」?
這個響應代碼示例:
// Avoid Class.newInstance, for it is evil.
Constructor<? extends Runnable> ctor = runClass.getConstructor();
Runnable doRun = ctor.newInstance();
那麼,爲什麼是邪惡?
實際上看到了這個問題的答案:人們可以對反射的各種用法進行說明...不僅僅是Class.newInstance()。所以這實際上是一個普遍的觀察,即「反射會影響編譯時間檢查」......這往往是反思的一點。 – 2008-10-24 23:33:44
孩子們這些天,哦,他們扔掉單詞「邪惡」,但他們甚至從來沒有見過COBOL或FORTRAN計劃!你想讓「EVIL」看看20年前的FORTRAN程序,這個程序是通過模擬背景和沒有CS影響力從項目傳遞給項目的!現在「EVIL!」 – NoMoreZealots 2009-07-31 01:50:05
另請參閱http://stackoverflow.com/q/36272566/3888450 – 2016-03-28 23:14:30