我可以使用下面这段代码
处理String的空值检查 if (acct != null && !acct.isEmpty()|| !acct.equals(""))
我的意思是上面的代码是,如果
或
我的代码是否满足上面提到的这些组合,还是我需要添加任何括号?满足上面提到的组合(第1和第2)??
谢谢
答案 0 :(得分:3)
是的,并且始终在或之前评估,即您的代码与
相同if ((acct != null && !acct.isEmpty()) || !acct.equals(""))
然而,从逻辑上讲,这对我来说没有意义。你真的需要最后一部分吗?在这个特定的例子中,“acct.isEmpty()”是不是与“acct.equals(”“))”相同?
答案 1 :(得分:2)
isEmpty()
和.equals("")
完全相同。如果acct
为空,那么您的测试将抛出NullPointerException。
我不明白你想要做哪个测试,但这个测试是错误的。再想一想,并实施单元测试来测试所有情况:
答案 2 :(得分:1)
根据你提出的问题,它应该有如下括号
if ((acct != null && !acct.isEmpty()) || !("".equals(acct) ))
在||之后运算符,代码被更改,当acct为NULL时,将避免面临NullPointerException。
这个SO答案解释了更多关于使用“”.equals()的信息。