在Java代码中的if语句中,我经常阅读类似if(string != null && string.isEmpty() == false)
的内容。我习惯写if(string != null && !string.isEmpty())
使用!string.isEmpty()
是否有任何缺点?
答案 0 :(得分:8)
在行为方面
if(string != null && string.isEmpty() == false)
和
if(string != null && !string.isEmpty())
显然是相同的。我更喜欢后者,只是因为它更简洁。在可能的情况下,我更愿意积极地表达条件,但遗憾的是没有string.isNotEmpty()
方法
所以一般来说,当我想检查一个String是null还是空(以null安全的方式)时,我使用:
StringUtils.isNotBlank(string)
这个StringUtils类来自Apache commons lang库,但如果你没有在类路径上有这个并且不想添加它,你可以轻松编写自己的。
答案 1 :(得分:3)
我没有任何可以想到的缺点。这只是个人编码风格和偏好的问题。就个人而言,我也更喜欢if(!string.isEmpty())
。
答案 2 :(得分:1)
答案 3 :(得分:0)
以下是java.lang.String implementation
的摘录1286 public boolean isEmpty() {
1287 return 0 == count;
1288 }
isEmpty()
检查存储在私有字段计数中的字符串中的符号数是否为0.如果使用if(string.isEmpty() == false)
或if(!string.isEmpty())
,则无关紧要个人编码偏好。
但是,如果您还需要对String执行空检查,则可以检查Apache Commons-Lang StringUtils.isEmpty(..)