Netbeans IDE不会发出有关构造函数中调用的方法的警告

时间:2013-06-21 09:03:14

标签: java netbeans

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

发出警告
public class Base
{
    Base(...)
    {
        ...;
    }

    public void foo()
    {
        ...;
    }
}

public class Child extends Base
{
    Child(...)
    {
        super(...);
        foo();
    }
}

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

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

1 个答案:

答案 0 :(得分:2)

确实如此 在NetBeans中打开文件时,您应该会在foo的调用旁边看到一个黄色灯泡(提示指示符)。这是你的建议:

  • Make Child final
  • 制作foo final,private或static

如果您希望它更明显,请转到Tools > OptionsEdit > PreferencesNetbeans > Preferences(取决于您的操作系统)。
选择Editor
选择Hints
Language设为Java
展开Initialization
选择Problematic call in the constructor
Show as更改为Error
点击OK

现在该行以及您的文件将获得红色错误徽章。

注意,这些都不会阻止忽略指标。代码仍然是合法的Java,因此NB不会阻止您编译。

相关问题