嘿我试着用变量f填充这个表的不同插槽,但是我需要在它放入之前对它所在的行和列进行一些检查。我不知道如何更改if语句为了使它工作,它不断给我空指针异常。请帮忙:)
这是需要修复的代码的一部分。
for (int row1 = 0; row1 < data.length; row1++)
{
for (int col1 = 0; col1<data[0].length; col1++)
{
if(col1%2 != 0)
{
data[row1][col1]= "day" + d;
d++;
}
else
{
Integer f = new Integer(1);
int col2 = 0;
int row3 = 0;
boolean rows;
for (int row2 = 0; row2 < data.length; row2++)
{
if(data[row2][col2].equals(f))//this one
{
rows = false;
}
else
{
rows = true;
}
col2++;
if(col2 >= col)
{
col2 = 0;
}
for (int col3 = 0; col3<data[0].length; col3++)
{
if(f > a)
{
f = 1;
}
else if(rows == true && data[row3][col3].equals(f))//this one
{
data[row3][col3]= f;
}
f++;
row3++;
if(row3 >= row)
{
row3 = 0;
}
}
}
}
}
}
答案 0 :(得分:2)
正如@mikemil和@Miguel建议的那样,提供更多代码并重构代码。
如果这是抛出Null Pointer Exception的行,
if(data[row2][col2].equals(f))
表示data[row2][col2]
为空。
先检查null,然后执行equals()
或尝试这样
if(f.equals(data[row2][col2]))