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) –