Netbeans IDE没有对构造函数中调用的方法发出警告



Netbeans IDE善于发现可能给您带来麻烦的代码。为什么没有对

发出警告?
public class Base
{
    Base(...)
    {
        ...;
    }
    public void foo()
    {
        ...;
    }
}
public class Child extends Base
{
    Child(...)
    {
        super(...);
        foo();
    }
}

鉴于我在子构造函数中调用基类函数foo() ?当然,这是完全合法的,因为基对象是由调用foo()的点构造的,但是foo()隐式地是一个虚拟方法,所以我真的希望有一个警告,除非foo()被标记为final

我认为IDE应该发出警告,如果你从子类构造函数调用任何基类函数,没有标记为final。

可以。
当您在NetBeans中打开该文件时,您应该在对foo的调用旁边看到一个黄色灯泡(提示指示器)。这是一个建议,你要么:

  • Make Child final
  • 设置foo为final、private或static

如果你想让它更明显,去Tools > Options,或Edit > Preferences,或Netbeans > Preferences(取决于你的操作系统)。
选择Editor
选择Hints
设置LanguageJava
展开Initialization
选择Problematic call in the constructor
修改Show asError
点击OK

现在行和你的文件将得到一个红色的错误标记。

注意,这些都不能阻止忽略指示符。代码仍然是合法的Java,所以NB不会阻止你编译。

相关内容

  • 没有找到相关文章

最新更新