NullPointerException Java帮助

NullPointerException Java帮助,java,nullpointerexception,Java,Nullpointerexception,为了解决这个问题,我在过去的几个小时里忙得不可开交。每次我点击一个应该打开JFrame的JButton(它确实打开了),我都会得到一个stacktrace,说我在这些代码位上有一个空点异常: 在A班,我有: aButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { B instanceofB = new B(userSession.getBal

为了解决这个问题,我在过去的几个小时里忙得不可开交。每次我点击一个应该打开JFrame的JButton(它确实打开了),我都会得到一个stacktrace,说我在这些代码位上有一个空点异常:

在A班,我有:

aButton.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        B instanceofB = new B(userSession.getBalance());
    }
});
B类

super.getSomeBtn().setVisible(false);
这就是stacktrace所说的上述两个部分中的错误所在。 我有一条和B班上面那条完全一样的线,它能正常工作吗


真的困在这里了

您可以分解这些语句,逐个检查每个引用是否为空。您可以为此使用打印/日志语句或断言:

assert aButton != null;
aButton.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
      assert userSession != null;
      B instanceofB = new B(userSession.getBalance());

        });

...
assert super.getSomeBtn() != null;
super.getSomeBtn().setVisible(false);

您可以分解这些语句,逐个检查每个引用是否为空。您可以为此使用打印/日志语句或断言:

assert aButton != null;
aButton.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
      assert userSession != null;
      B instanceofB = new B(userSession.getBalance());

        });

...
assert super.getSomeBtn() != null;
super.getSomeBtn().setVisible(false);

如果使用eclipse之类的IDE,请在NullPointerException上设置断点。然后,在调试时,检查该点的局部变量,以确定什么是null。从这段代码来看,getSomeBtn()很可能返回null,这意味着B类没有初始化它,或者调用了错误的超类构造函数。然而,这里确实没有足够的细节/上下文来提供帮助。如果有疑问,请将调试器调出

如果使用eclipse之类的IDE,请在NullPointerException上设置断点。然后,在调试时,检查该点的局部变量,以确定什么是null。从这段代码来看,getSomeBtn()很可能返回null,这意味着B类没有初始化它,或者调用了错误的超类构造函数。然而,这里确实没有足够的细节/上下文来提供帮助。如果有疑问,请将调试器调出

以下是3个关注点,NPE可能发生:

  • super.getSomeBtn()可以为空
  • userSession可以为null
  • 类B的某些初始化代码也会引发此异常,例如这样的代码

    对象_one=null; 对象_two=_one.getClass()

在字段声明期间,将导致NPE


我想,仔细看看这三点,你会发现一些东西。断点/日志/断言-一切都会有帮助。

这里有3个关注点,NPE可以发生:

  • super.getSomeBtn()可以为空
  • userSession可以为null
  • 类B的某些初始化代码也会引发此异常,例如这样的代码

    对象_one=null; 对象_two=_one.getClass()

在字段声明期间,将导致NPE


我想,仔细看看这三点,你会发现一些东西。断点/日志/断言-一切都会有帮助。

谢谢大家非常有用的回复谢谢大家非常有用的回复