Netbeans IDE 擅长发现可能会给您带来麻烦的代码。为什么不发出警告
public class Base
{
Base(...)
{
...;
}
public void foo()
{
...;
}
}
public class Child extends Base
{
Child(...)
{
super(...);
foo();
}
}
假设我在子构造函数中调用基类函数 foo()?当然,这是完全合法的,因为基础对象是由调用点 foo() 构造的,但是 foo() 隐含地是一个虚方法,所以我真的希望得到一个警告除非 foo() 被标记为 final.
我认为如果您从未标记为 final 的子类构造函数调用任何基类函数,IDE 应该发出警告。
最佳答案
确实如此。
当您在 NetBeans 中打开该文件时,您应该会在对 foo
的调用旁边看到一个黄色灯泡(提示指示器)。建议您:
- 让 child 最终
- 将 foo 设置为最终的、私有(private)的或静态的
如果你想让它更明显,去 Tools > Options
,或者 Edit > Preferences
,或者 Netbeans > Preferences
(取决于在你的操作系统上)。
选择编辑器
选择提示
将语言
设置为Java
展开初始化
选择在构造函数中有问题的调用
将 Show as
更改为 Error
点击确定
现在该行以及您的文件将获得红色错误标记。
请注意,这些都不会阻止您忽略指示器。代码仍然是合法的Java,所以NB不会阻止你编译。
关于java - Netbeans IDE 不发出有关在构造函数中调用的方法的警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17231383/