推送方法的未知异常

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。