如何在Java中检查对象是否为null?

时间:2013-04-04 00:46:36

标签: java exception null

检查某个职位是否被占用的最佳方法是什么?我不认为我应该使用"这= = null" ...

class Cell {
    int column;
    int row;
    char letter;

    public Cell(int column, int row, char letter) {
        super();
        this.column = column;
        this.row = row;
        this.letter = letter;
    }

    public boolean isEmpty() {
        if (this==null) return true;
        else return false;
    }
}

3 个答案:

答案 0 :(得分:2)

我将假设char是您Cell的内容,并且您想检查该内容是否为null

首先,this不能是nullthis是当前对象,因此始终存在。

您正在使用char - 因为这是一个原语也不能是null。将其更改为对象包装器并检查null

class Cell {

    int column;
    int row;
    Character letter;

    public Cell(int column, int row, Character letter) {
        this.column = column;
        this.row = row;
        this.letter = letter;
    }

    public boolean isEmpty() {
        return letter == null;
    }
}

另一个注意事项是默认情况下总是调用超类构造函数,没有理由调用super()

答案 1 :(得分:0)

如果对象的实例存在,那么它不能是null! (正如Code-Guru的评论所说)。但是,您要做的是检查对象的letter属性是否为空(

)。

作为建议,不要使用char作为类型,而是使用Character,这是封装char类型的类。

你的课程可能会是这样的:

class Cell {
    int column;
    int row;
    Character letter;

    public Cell(int column, int row, Character letter) {
        super();
        this.column = column;
        this.row = row;
        this.letter = letter; // This is an object, not a primitive type 
    }

    public boolean isEmpty() {
        if (letter==null) 
            return true;
        else 
            return false;
    }
}

答案 2 :(得分:0)

this不能为null,因为this是您Cell的实例。  不将char更改为Character

class Cell {
    int column;
    int row;
    char letter;

    public Cell(int column, int row, char letter) {
        super();
        this.column = column;
        this.row = row;
        this.letter = letter;
    }

    public boolean isEmpty() {
        return letter == 0;
    }
}