我通常与 a 一起测试它string == null,所以我并不真正关心 null 安全测试。我应该使用哪个?
string == null
String s = /* whatever */; ... if (s == null || "".equals(s)) { // handle some edge case here }
或者
if (s == null || s.isEmpty()) { // handle some edge case here }
在那张纸条上 -甚至除了or之外还isEmpty()做任何事情吗?return this.equals("");``return this.length() == 0;
isEmpty()
return this.equals("");``return this.length() == 0;
的主要好处"".equals(s)是您 不需要 空值检查(equals将检查其参数并false在它为空时返回),您似乎并不关心。如果您不担心s为 null (或者正在检查它),我肯定会使用s.isEmpty(); 它准确地显示了您正在检查的内容,您关心是否s为空,而不是它是否等于空字符串
"".equals(s)
equals
false
s
s.isEmpty()