线程“AWT-EventQueue-0”中的异常java.lang.NullPointerException Java GUI错误

时间:2013-12-12 16:16:08

标签: java user-interface nullpointerexception

我正在尝试用java设计一个计算器。我的代码还没有完成,但我设计了一个GUI,除了我试图实际计算结果时,它的工作原理。当我在我的计算器上按“=”时,我收到上述错误。这是我的代码:

问题已修复

我知道这是很多代码,所以我很抱歉,我也意识到可能还有其他错误,因为我对Java很新,我只是非常坚持我得到的错误目前并且不知道如何解决它,感谢任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

你永远不会初始化calcOperands - 所以在第60行,你使用:

calcOperands.add(operand);

... calcOperands仍为null,导致异常。看起来您的其他ArrayList变量存在同样的问题。您可以在声明中创建一个新列表 - 我也将变量本身更改为List<E>,如下所示:

private final List<Double> calcOperands = new ArrayList<Double>();
private final List<String> calcOperators = new ArrayList<String>();
private final String stringInput;
private final List<Integer> priorityList = new ArrayList<String>();
private String[] splitString;

我当然也把大部分变量都归结为最终。您可能想要考虑是否真的希望splitString是可变的,只有在您拨打checkInput时才设置...

(我没有看过你的其余代码。)

除了解决这些问题之外,你应该退一步思考一下事情的诊断方面。在试图找到问题时你坚持了哪一点?您是否查看了堆栈跟踪并将问题精确定位到StringCalculator.java第60行?你明白NullPointerException是什么意思吗? (如果没有,你有没有试过找出来?)现在你知道了实际的答案,值得思考你自己如何达到它 - 诊断问题是软件开发的一个重要部分。