繁体   English   中英

构造函数中的可覆盖方法调用

[英]Overridable method call in constructor

我有一个类U,并且在该类的构造函数中,我将其称为可重写的方法,它是公共的。 NetBeans警告我: Overridable method call in constructor

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

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

如果要使编译器满意,请将方法或整个类定为final

这是一个警告,而不是错误,因此您可以这样保留它。 但是,如果您要发布此代码,则有人可以扩展您的类U,覆盖该方法,并带来很多麻烦。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM