检查某个职位是否被占用的最佳方法是什么?我不认为我应该使用"这= = 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;
}
}
答案 0 :(得分:2)
我将假设char
是您Cell
的内容,并且您想检查该内容是否为null
。
首先,this
不能是null
。 this
是当前对象,因此始终存在。
您正在使用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;
}
}