为什么我会得到NullPointerException?

0 java nullpointerexception

我以为用过

if (data[i] != null)
Run Code Online (Sandbox Code Playgroud)

我会避免异常,但我仍然得到它.这是我的代码.

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;
}
Run Code Online (Sandbox Code Playgroud)

data [i]是一个空数组,都是null.

当我执行.get()我得到的方法NullPointerException.

JSS*_*JSS 6

你有没有检查过printstack跟踪你得到nullpointer异常的哪一行?

我认为你还应该检查data数组本身是否为null.

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

}
Run Code Online (Sandbox Code Playgroud)