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方法。