如果我在“public GUI()
”之前插入以下内容,警告就会消失,但这是怎么回事?
@SuppressWarnings("OverridableMethodCallInConstructor")
我到底应该做什么?为什么?
public class GUI extends javax.swing.JFrame {
boolean plusActive;
boolean minusActive;
boolean timesActive;
boolean divActive;
boolean toTheActive;
public GUI() {
initComponents();
zapOperatorBooleans();
}
public void zapOperatorBooleans(){
plusActive = false;
minusActive = false;
timesActive = false;
divActive = false;
toTheActive = false;
}
...
我刚刚读到(在“工具”>“选项”>“提示”中)“在构造函数中调用可重写的方法可能很危险,因为在调用重写方法时,对象尚未完全初始化”,但这并不能帮助我决定应该做什么。
最佳答案
将 zapOperatorBooleans
声明为 final
或 private
。至于为什么,参见http://www.javapractices.com/topic/TopicAction.do?Id=215
关于java - 为什么 Netbeans "Initialization hint"说对 zapOperatorBooleans() 的调用是对构造函数的有问题的调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19554602/