2013-03-13 115 views
2

我有一個類U,並在類的構造函數中調用了可公開的overridable方法。 NetBeans的警告我:Overridable method call in constructor構造函數中的可重寫方法調用

不過,我不會覆蓋在我的項目的方法,因爲U類無子類.. 是否確定要離開它這樣的嗎? ....在這種情況下在構造函數中調用可重寫的方法?

+0

可能的重複:[在構造函數中可重寫的方法調用有什麼問題?](http://stackoverflow.com/questions/3404301/whats-wrong-with-overridable-method-calls-in-constructors),[如何修復「構造函數調用Overridable方法」](http://stackoverflow.com/questions/10337011/how-to-fix-constructor-calls-overridable-method)。另請參見:[構造函數不應調用覆蓋項](http://www.javapractices.com/topic/TopicAction.do?Id=215)。 – ZeroOne 2013-03-13 09:20:23

+0

檢查這一個http://stackoverflow.com/questions/3404301/whats-wrong-with-overridable-method-calls-in-constructors – pomkine 2013-03-13 09:21:05

回答

1

這是一個警告,而不是一個錯誤,所以你可以像這樣離開它。但是,如果你要發佈這個代碼,有人可以擴展你的班級U,重寫這個方法並且遇到很多麻煩。

3

這不是一個錯誤。你可以忽略它。

如果您想讓編譯器很開心,請使用任一方法或整個類final

1

如前所述,您可以'忽略'警告。

但是,您自己承擔風險,因爲錯誤會在以後發生。警告的原因是編譯器無法證明對'this'的引用不會逃離構造函數。這可能導致錯誤,因爲創建的對象尚未完全構建,因此對象可能處於無效狀態。

相關問題