Java NullPointerException,计算器程序
我在Java PostFix calc程序中遇到了一个迄今为止无法修复的障碍。特别是,这个程序会导致NullPointerException,我不知道为什么。不用多说,就在这里 首先是tokenizer类,它将空格分隔的字符串解析为字符串标记(无论如何,理论上) 第103行是myStack.push();Java NullPointerException,计算器程序,java,nullpointerexception,Java,Nullpointerexception,我在Java PostFix calc程序中遇到了一个迄今为止无法修复的障碍。特别是,这个程序会导致NullPointerException,我不知道为什么。不用多说,就在这里 首先是tokenizer类,它将空格分隔的字符串解析为字符串标记(无论如何,理论上) 第103行是myStack.push(); 第30行为空您永远不会将myStack变量初始化为有效对象。你可以用 myStack = new ....; 但比代码的具体问题更重要的是,您需要了解如何完成NPE(NullPointe
第30行为空您永远不会将myStack变量初始化为有效对象。你可以用
myStack = new ....;
但比代码的具体问题更重要的是,您需要了解如何完成NPE(NullPointerException)的调试过程
- 找到抛出NPE的行李>
- stackTrace将准确地告诉您是哪一行,例如,在您的示例中,它是postfix Calculator.java:103==postfix Calculator.java类的第103行
- 如果您使用一个IDE,例如NetBeans、Eclipse或IntelliJ,IDE通常能够通过双击堆栈跟踪快速、轻松地将您带到这一令人不快的地方
- 检查该行上的所有变量李>
- 您试图取消引用的变量之一(通常通过调用方法)为null。找出哪一个
- 回溯到您的程序,查看它为什么为空
myStack = new ....;
但比代码的具体问题更重要的是,您需要了解如何完成NPE(NullPointerException)的调试过程
- 找到抛出NPE的行李>
- stackTrace将准确地告诉您是哪一行,例如,在您的示例中,它是postfix Calculator.java:103==postfix Calculator.java类的第103行
- 如果您使用一个IDE,例如NetBeans、Eclipse或IntelliJ,IDE通常能够通过双击堆栈跟踪快速、轻松地将您带到这一令人不快的地方
- 检查该行上的所有变量李>
- 您试图取消引用的变量之一(通常通过调用方法)为null。找出哪一个
- 回溯到您的程序,查看它为什么为空
Stack<String> myStack= new Stack<>();
Stack myStack=new Stack();
您尚未初始化堆栈,请按以下方式初始化:
Stack<String> myStack= new Stack<>();
Stack myStack=new Stack();
我看不到你在初始化myStack
,所以它只能是null
我看不到你在初始化myStack
,所以它只能是null
你能粘贴错误跟踪吗我如何在Netbeans上这样做?发布堆栈跟踪。还要告诉我们空指针是哪一行。堆栈跟踪应该在程序输出通常所在的控制台中。是否可以粘贴错误strack跟踪我如何在Netbeans上执行此操作?发布堆栈跟踪。还要告诉我们空指针是哪一行。堆栈跟踪应该在控制台中,程序的输出通常在控制台中。
Stack<String> myStack= new Stack<>();