Java:NullPointerException由类定义引起?
我得到以下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
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触发的。一旦侦听器被显式地创建和实例化,我就能够获得有意义的堆栈跟踪。非常感谢!