【发布时间】:2013-03-01 03:21:14
【问题描述】:
我有一个 U 类,在该类的构造函数中,我调用了公共的可覆盖方法。
NetBeans 警告我:Overridable method call in constructor
但是,我没有在我的项目中覆盖该方法,因为 U 类没有子类.. 就这样放着可以吗? ....在这种情况下在构造函数中调用可覆盖的方法?
【问题讨论】:
标签: java netbeans methods constructor overriding
我有一个 U 类,在该类的构造函数中,我调用了公共的可覆盖方法。
NetBeans 警告我:Overridable method call in constructor
但是,我没有在我的项目中覆盖该方法,因为 U 类没有子类.. 就这样放着可以吗? ....在这种情况下在构造函数中调用可覆盖的方法?
【问题讨论】:
标签: java netbeans methods constructor overriding
这不是错误。你可以忽略它。
如果您想让编译器满意,请使任一方法或整个类final。
【讨论】:
这是一个警告,而不是一个错误,所以你可以就这样离开它。但是,如果您要发布此代码,有人可能会扩展您的 U 类,重写该方法并遇到很多麻烦。
【讨论】:
如前所述,您可以“忽略”警告。
但是,您这样做需要您自担风险,因为错误可能会在以后出现。警告的原因是编译器无法证明对“this”的引用不会逃脱构造函数。这可能会导致错误,因为正在创建的对象尚未完全构造,因此该对象可能处于无效状态。
【讨论】: