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——你认为你的观点很好吗?你认为你帮了忙吗?我为什么要问这些问题?