空指针异常错误调用方法

null pointer exception error calling method

如果我调用一个方法,我会得到这个空指针异常错误。 如果(farm1.cropStat(行,列))

这是方法

public boolean cropStat(int row, int col)
{
    if( !( field1[row][col].harvested ) && field1[row][col] != null  )       
    {
        return true;
    }
    else
    {
        return false;
    }
}

这里是初始化

public void initializeCrops()
{
    Random rnd = new Random();
    int rRow=-1, cCol=-1;
    int i, j;

    for (i = 0; i< 74; i++)
    {   
        while(rRow <0 || cCol <0)
        {
            rRow = rnd.nextInt() % 104;
            cCol = rnd.nextInt() % 104;
        }
        field1[rRow][cCol] = new Crops(rRow, cCol);
    }  
 }

请帮忙:(

您没有在任何地方初始化 field1,因此当您尝试为其赋值时它为空。

每当您看到类似这样的模式时

if (someCondition) {
    return true;
} else {
    return false;
}

将其替换为等效的

return someCondition.

是一回事

就错误而言,您需要颠倒检查顺序,以便在引用该项目之前查看该项目不是 null

return field1[row][col] != null && !( field1[row][col].harvested );

运算符 && 的设计方式是一旦发现结果将为假,就会停止进一步的评估。在上面的例子中,如果 field1[row][col]null&& 将停止,防止空指针异常。

反转if语句中表达式的顺序:

if( field1[row][col] != null && !( field1[row][col].harvested ))