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