Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java NullPointerException,计算器程序_Java_Nullpointerexception - Fatal编程技术网

Java NullPointerException,计算器程序

Java NullPointerException,计算器程序,java,nullpointerexception,Java,Nullpointerexception,我在Java PostFix calc程序中遇到了一个迄今为止无法修复的障碍。特别是,这个程序会导致NullPointerException,我不知道为什么。不用多说,就在这里 首先是tokenizer类,它将空格分隔的字符串解析为字符串标记(无论如何,理论上) 第103行是myStack.push(); 第30行为空您永远不会将myStack变量初始化为有效对象。你可以用 myStack = new ....; 但比代码的具体问题更重要的是,您需要了解如何完成NPE(NullPointe

我在Java PostFix calc程序中遇到了一个迄今为止无法修复的障碍。特别是,这个程序会导致NullPointerException,我不知道为什么。不用多说,就在这里

首先是tokenizer类,它将空格分隔的字符串解析为字符串标记(无论如何,理论上)

第103行是myStack.push();
第30行为空

您永远不会将myStack变量初始化为有效对象。你可以用

myStack = new ....; 

但比代码的具体问题更重要的是,您需要了解如何完成NPE(NullPointerException)的调试过程

  • 找到抛出NPE的行
  • stackTrace将准确地告诉您是哪一行,例如,在您的示例中,它是postfix Calculator.java:103==postfix Calculator.java类的第103行
  • 如果您使用一个IDE,例如NetBeans、Eclipse或IntelliJ,IDE通常能够通过双击堆栈跟踪快速、轻松地将您带到这一令人不快的地方
  • 检查该行上的所有变量
  • 您试图取消引用的变量之一(通常通过调用方法)为null。找出哪一个
  • 回溯到您的程序,查看它为什么为空

您从未将myStack变量初始化为有效对象。你可以用

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<>();