2

我有一个 U 类,在该类的构造函数中,我调用了公共的可覆盖方法。NetBeans 警告我:Overridable method call in constructor

但是,我不会在我的项目中覆盖该方法,因为 U 类没有子类。这样可以保留吗?....在这种情况下在构造函数中调用可覆盖的方法?

4

3 回答 3

2

这不是错误。你可以忽略它。

如果您想让编译器满意,请将任一方法或整个类设为final

于 2013-03-13T09:35:41.363 回答
1

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

但是,您这样做需要您自担风险,因为错误可能会在以后出现。警告的原因是编译器无法证明对“this”的引用不会逃脱构造函数。这可能会导致错误,因为正在创建的对象尚未完全构造,因此该对象可能处于无效状态。

于 2013-03-13T13:22:57.133 回答
1

这是一个警告,而不是错误,所以你可以这样离开它。但是,如果您要发布此代码,有人可能会扩展您的 U 类,重写该方法并遇到很多麻烦。

于 2013-03-13T09:19:57.163 回答