我有一个类U,在类的构造函数中我调用了可公开的overridable方法。
NetBeans警告我:Overridable method call in constructor
但是,我没有覆盖项目中的方法,因为类U没有子类。 可以这样离开吗? ....在这种情况下,在构造函数中调用overridable方法?
答案 0 :(得分:2)
这不是错误。你可以忽略它。
如果你想让编译器开心,可以使用任何一种方法,或者整个类最终。
答案 1 :(得分:1)
这是一个警告,而不是错误,所以你可以这样离开。但是,如果您要发布此代码,有人可能会扩展您的类U,覆盖该方法并遇到很多麻烦。
答案 2 :(得分:1)
如前所述,您可以“忽略”警告。
然而,您这样做需要您自担风险,因为错误可能会在以后发生。警告的原因是编译器无法证明对'this'的引用不会逃避构造函数。这可能导致错误,因为正在创建的对象尚未完全构造,因此对象可能处于无效状态。