0
我一直在閱讀Joshua Bloch的Effective Java,它明確指出非final方法不應該在構造函數中調用,我明白爲什麼調用它們可能會成爲問題。從LinkedList的構造函數調用non-final addAll方法
當我閱讀openjdk代碼並發現在LinkedList的「複製構造函數」中調用了非final方法addAll(從AbstractCollection繼承)時,我感到驚訝。
如果Java編寫者自己做到這一點,那麼肯定會出現這樣的情況,其中是安全。什麼時候安全?如果我定義了另一個集合類,我可以在構造函數中調用addAll嗎?
有沒有作者提供的理由也爲「非最終方法不應該在構造函數中調用」的說法? –
請參閱:http://stackoverflow.com/a/3404369/982149 – Fildor
可能重複[在構造函數中重寫的方法調用有什麼問題?](http://stackoverflow.com/questions/3404301/whats-wrong-with- overridable-method-calls-in-constructors) –