Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.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,我想用 if (data[i] != null) 我会避免这个例外,但我仍然明白。 这是我的密码 public Object get(String key) { int i = hashCode(key); while (i != capacity) { if (data[i] != null) { if (key.equals(data[i].key())) return data

我想用

if (data[i] != null)
我会避免这个例外,但我仍然明白。 这是我的密码

public Object get(String key)
{
    int i = hashCode(key);
    while (i != capacity)
    {
        if (data[i] != null)
        {
            if (key.equals(data[i].key()))
                return data[i].element();
            else
                i++;
        }
        else
        {
            return null;
        }
    }                   
    return null;
}
数据[i]是一个空数组,全部为空


当我执行方法
.get()
时,我得到了
NullPointerException

是否检查了获取nullpointer异常的哪一行的printstack跟踪

我认为您还应该检查
数据
数组本身是否为空

//EDIT: Taking the liberty to add code
if(data!=null && data[i]!=null)
{

}

您是否检查了获取nullpointer异常的哪一行的printstack跟踪

我认为您还应该检查
数据
数组本身是否为空

//EDIT: Taking the liberty to add code
if(data!=null && data[i]!=null)
{

}

您应该能够从stacktrace中看到导致NPE的确切行。它是哪一行?当您在调试器中捕获此异常时,您会看到什么?问题已解决。我没有意识到我主要请求了'get()。'toString()'get()。'返回了一个对象,但我想你不能调用空对象的toString,谢谢你的帮助!您应该能够从stacktrace中看到导致NPE的确切行。它是哪一行?当您在调试器中捕获此异常时,您会看到什么?问题已解决。我没有意识到我主要请求了'get()。'toString()'get()。'返回了一个对象,但我想你不能调用空对象的toString,谢谢你的帮助!我做了一个单独的方法来返回'data[I]'。数据[i]例如数据[0]返回null。如果你做一个数组,所有的单元格都是空的,对吗?这个方法不返回异常,但是get方法返回异常。没关系。我解决了这个错误。这个错误是我的主要错误。我试图调用返回的null对象的toString方法。我创建了一个单独的方法来返回“data[I]”。数据[i]例如数据[0]返回null。如果你做一个数组,所有的单元格都是空的,对吗?这个方法不返回异常,但是get方法返回异常。没关系。我解决了这个错误。这个错误是我的主要错误。我试图调用返回的null对象的toString方法。