Java 为什么Netbeans会这样做;初始化提示";假设对zapOperatorBooleans()的调用是对构造函数的有问题的调用?
如果我在“Java 为什么Netbeans会这样做;初始化提示";假设对zapOperatorBooleans()的调用是对构造函数的有问题的调用?,java,netbeans,Java,Netbeans,如果我在“public GUI()”之前插入以下内容,警告就会消失,但怎么了 @SuppressWarnings("OverridableMethodCallInConstructor") 我该怎么办?为什么 public class GUI extends javax.swing.JFrame { boolean plusActive; boolean minusActive; boolean timesActive; boolean divActive; bool
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
。至于原因,请参见将zapOperatorBooleans
声明为final
或private
。至于原因,请参见所有有帮助的评论。这是修改后的代码。我只有以前拥有的东西,因为GUIbuilder用它的initComponents()方法诱惑了我,我抓住机会从壁架上摔了下来
class...
private static boolean plusActive = false;
private static boolean minusActive = false;
等等
等等(不是多余的;在GUI的迭代执行期间,一个或多个布尔值被设置为true,需要重置,但它们也需要初始值。) 所以我真的应该这么做
更重要的是(从我的角度来看),我对这样一个基本概念和其他概念的无知(例如,我对错误消息“非静态…可能无法从非静态上下文引用”)使我进行了大量阅读、反思(个人,而非Java)、谷歌搜索、学习和思考。。。我现在比以前好多了 所有的评论都有帮助。这是修改后的代码。我只有以前拥有的东西,因为GUIbuilder用它的initComponents()方法诱惑了我,我抓住机会从壁架上摔了下来
class...
private static boolean plusActive = false;
private static boolean minusActive = false;
等等
等等(不是多余的;在GUI的迭代执行期间,一个或多个布尔值被设置为true,需要重置,但它们也需要初始值。) 所以这才是我真正应该做的
更重要的是(从我的角度来看),我对这样一个基本概念和其他概念的无知(例如,我对错误消息“非静态…可能无法从非静态上下文引用”)使我进行了大量阅读、反思(个人,而非Java)、谷歌搜索、学习和思考。。。我现在比以前好多了 你认为警告信息(提示)是什么意思?你不明白什么?从构造函数调用非私有方法是一件危险的事情。编译器询问您是否真的想这样做。您认为警告消息(提示)是什么意思?你不明白什么?从构造函数调用非私有方法是一件冒险的事情。编译器会问你是否真的想这么做。@Sotirios Delimanolis——你认为你的观点很好吗?你认为你帮了忙吗?我为什么要问这些问题?@Sotirios Delimanolis——你认为你的观点很好吗?你认为你帮了忙吗?我为什么要问这些问题?