推送方法的未知异常
unknown exception with a push method
我在使用 push 方法时遇到错误,但我找不到方法中的问题以及与之相关的代码。消息是:
Exception in thread "main" java.lang.NullPointerException
at stack.Stackmethod.newObject(Stackmethod.java:71)
at stack.Stackmethod.push(Stackmethod.java:24)
at stack.StackMain.main(StackMain.java:10)
指定的代码是:
第 71 行:
private void newObject() {
Object[] arr = new Object[tmp.length + 1];
for(int i = 0; i < tmp.length; i++) {
arr[i + 1] = tmp[i];
}
arr = tmp;
}
第 24 行:
@Override
public void push(Object element) {
newObject();
tmp[0] = element;
}
第 4 行:
public class Stackmethod implements Stack{
Object [] tmp;
主要:
public class StackMain {
public static void main(String[] args) {
Stackmethod stc = new Stackmethod();
stc.push(7);
System.out.println(stc.toString());
如果有人能解释一下哪里出了问题,我将不胜感激。
您应该初始化您的 "tmp" 数组:
public class Stackmethod implements Stack{
Object [] tmp = new Object[SOME_LENGTH_DEPENDING_ON_HOW_YOU_USE_IT];
在Java中,Object[] tmp 只是对数组的引用,默认情况下它被初始化为空。如果您尝试通过此类引用访问元素,您将得到 NullPointerException。
我在使用 push 方法时遇到错误,但我找不到方法中的问题以及与之相关的代码。消息是:
Exception in thread "main" java.lang.NullPointerException
at stack.Stackmethod.newObject(Stackmethod.java:71)
at stack.Stackmethod.push(Stackmethod.java:24)
at stack.StackMain.main(StackMain.java:10)
指定的代码是:
第 71 行:
private void newObject() {
Object[] arr = new Object[tmp.length + 1];
for(int i = 0; i < tmp.length; i++) {
arr[i + 1] = tmp[i];
}
arr = tmp;
}
第 24 行:
@Override
public void push(Object element) {
newObject();
tmp[0] = element;
}
第 4 行:
public class Stackmethod implements Stack{
Object [] tmp;
主要:
public class StackMain {
public static void main(String[] args) {
Stackmethod stc = new Stackmethod();
stc.push(7);
System.out.println(stc.toString());
如果有人能解释一下哪里出了问题,我将不胜感激。
您应该初始化您的 "tmp" 数组:
public class Stackmethod implements Stack{
Object [] tmp = new Object[SOME_LENGTH_DEPENDING_ON_HOW_YOU_USE_IT];
在Java中,Object[] tmp 只是对数组的引用,默认情况下它被初始化为空。如果您尝试通过此类引用访问元素,您将得到 NullPointerException。