Java:如何将if语句与对象进行比较?

时间:2014-02-08 05:30:52

标签: java if-statement

嘿我试着用变量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;
                            }
                        }
                    }
                }
            }
        }

1 个答案:

答案 0 :(得分:2)

正如@mikemil和@Miguel建议的那样,提供更多代码并重构代码。

如果这是抛出Null Pointer Exception的行,

if(data[row2][col2].equals(f))

表示data[row2][col2]为空。

先检查null,然后执行equals()

或尝试这样

if(f.equals(data[row2][col2]))