如何在Java中检查对象是否为空?
检查职位是否被占用的最佳方法是什么?我不认为我应该使用“this==null”如何在Java中检查对象是否为空?,java,exception,null,Java,Exception,Null,检查职位是否被占用的最佳方法是什么?我不认为我应该使用“this==null” 如果某个对象的实例存在,则该实例不能为null!(正如代码大师的评论所说)。但是,您要做的是检查对象的字母属性是否为空 建议不要使用char作为类型,而是使用Character,它是封装char类型的类 然后,您的类可能会如下所示: class Cell { int column; int row; Character letter; public Cell(int column,
如果某个对象的实例存在,则该实例不能为
null
!(正如代码大师的评论所说)。但是,您要做的是检查对象的字母
属性是否为空
建议不要使用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;
}
}
我假设
char
是单元格的内容
,您想检查该内容是否为null
首先,此
不能为null
<代码>此是当前对象,因此始终存在
您使用的是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()
这个不能为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() {
return letter == 0;
}
}
此
永远不能为null
,因为它指向当前对象。您需要一些其他方式来指示单元格
为空,例如另一个变量(可能是布尔值?)Derek Greer,at,有一长串使用TDD编写tic-tac-toe游戏的示例,他在如何渲染单元格方面面临类似的问题。然而,它是在C#中。不管怎样,我还是推荐它。谢谢。如果不允许我更改字母的类型,是否有任何选项?从默认值char
if\u0000
,这不是可打印字符-您可以进行测试。但是不太健壮。我猜您不想从char
更改为Character
,因为您在其他代码中已经使用了原语char
s?由于以下原因,您应该能够在单元格
类中透明地切换到字符
。因此,如果单元格
使用字符而不是字符
,则构建新的单元格
(如单元格c=new Cell(2,3,'x');
)仍然有效,并且可以使用空
检查。否则,您必须为要检查的letter
选择一些默认值,可能是bmorris591建议的\u0000
。
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;
}
}