Java:NullPointerException由类定义引起?

Java:NullPointerException由类定义引起?,java,swing,nullpointerexception,Java,Swing,Nullpointerexception,我得到以下NullPointerException: Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at com.foo.JawsFileChooser.a(SourceFile:28) at com.foo.JawsFileChooser$1.actionPerformed(SourceFile:91) at javax.swing.AbstractButton.fireAct

我得到以下NullPointerException:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at com.foo.JawsFileChooser.a(SourceFile:28)
    at com.foo.JawsFileChooser$1.actionPerformed(SourceFile:91)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
    [...snip...]
当用户点击我的应用程序中的一个按钮并遵循一组特定的步骤时。但是JawsFileChooser.java中的第28行定义了类:

public class JawsFileChooser extends JPanel implements SwingConstants, DebugConstants {
。我可以看看什么来找出为什么会发生这种情况

提前感谢您的帮助

我可以看看什么来找出为什么会发生这种情况

您可以查看
SourceFile:28
,它是
com.foo.JawsFileChooser.a
的一部分,并取消引用
null

编辑: 我看到stacktrace中报告的第一行类存在匿名内部类。例如,下面的代码

 1 import java.util.concurrent.*;
 2 
 3 class An {
 4 
 5  private String foo()
 6  {
 7      return "foo";
 8  }
 9  
10  public static void main(String[] args) {
11      final An an = null;
12      (new Callable<String>() {
13          public String call() {
14              return an.foo();
15          }
16      }).call();
17  }
18 }
将打印合成的方法名称,但行号与您的案例类似。我会看看
com.foo.JawsFileChooser$1.actionPerformed(SourceFile:91)

我可以看看什么来找出为什么会发生这种情况

您可以查看
SourceFile:28
,它是
com.foo.JawsFileChooser.a
的一部分,并取消引用
null

编辑: 我看到stacktrace中报告的第一行类存在匿名内部类。例如,下面的代码

 1 import java.util.concurrent.*;
 2 
 3 class An {
 4 
 5  private String foo()
 6  {
 7      return "foo";
 8  }
 9  
10  public static void main(String[] args) {
11      final An an = null;
12      (new Callable<String>() {
13          public String call() {
14              return an.foo();
15          }
16      }).call();
17  }
18 }

将打印合成的方法名称,但行号与您的案例类似。我会看看
com.foo.JawsFileChooser$1.actionPerformed(SourceFile:91)
不要总是依赖行号! 即使你这样做了,也要看看第91行-


在com.foo.JawsFileChooser$1.actionPerformed(SourceFile:91)

不要总是依赖行号! 即使你这样做了,也要看看第91行-


在com.foo.JawsFileChooser$1.actionPerformed(SourceFile:91)

按钮的actionPerformed(…)方法中,它引用的选择可能不存在(或可能没有内容)。您是否编写代码来处理这些情况?如果没有,可能是您试图针对空指针执行/验证某些操作。

很可能在按钮的actionPerformed(…)方法中,它引用了一个可能不存在(或可能没有内容)的选择。您是否编写代码来处理这些情况?如果没有,可能是您试图针对空指针执行/验证某些操作。

添加a()方法,可能是过时的字节码?它看起来像是错误的行号报告。我想看看
JawsFileChooser
a(…)
方法,看看您是否能自己解决这个问题。或者调试它…从
JawsFileChooser
在堆栈tracead()方法的行周围发布代码,它可能是过时的字节码?它看起来像是坏的行号报告。我想看看
JawsFileChooser
a(…)
方法,看看您是否能自己解决这个问题。或者调试它…从
JawsFileChooser
围绕堆栈跟踪上的行发布代码在他的帖子中,他指出第28行是类定义。问题确实是由连接到JButton的匿名ActionListener触发的。一旦侦听器被显式地创建和实例化,我就能够获得有意义的堆栈跟踪。非常感谢!在他的帖子中,他指出第28行是类定义。这个问题确实是由连接到JButton的匿名ActionListener触发的。一旦侦听器被显式地创建和实例化,我就能够获得有意义的堆栈跟踪。非常感谢!