我收到以下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 {
。我该怎么看才能弄清楚为什么会这样?
提前感谢您的帮助。
答案 0 :(得分:3)
我可以看看为什么会发生这种情况?
您可以查看SourceFile:28
,它是com.foo.JawsFileChooser.a
的一部分并取消引用null
编辑: 我已经看到在存在匿名内部类的堆栈跟踪中报告的第一行类。例如以下代码
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 }
结果
javac -g An.java && java -cp . An
Exception in thread "main" java.lang.NullPointerException
at An.access$000(An.java:3)
at An$1.call(An.java:14)
at An.main(An.java:12)
打印合成的方法名称,但行号与您的案例类似。我会看com.foo.JawsFileChooser$1.actionPerformed(SourceFile:91)
答案 1 :(得分:0)
不要总是依赖行号! 即使你这样做,也要看第91行 -
at com.foo.JawsFileChooser $ 1.actionPerformed(SourceFile:91)
答案 2 :(得分:0)
在按钮的actionPerformed(...)方法中,它引用了一个可能不存在(或者可能没有内容)的选择。您是否编写了代码来处理这些条件?如果没有,也许你试图针对空指针进行/验证。