java:通过组合处理空检查
我能够用下面的代码处理字符串的空检查java:通过组合处理空检查,java,Java,我能够用下面的代码处理字符串的空检查 if (acct != null && !acct.isEmpty()|| !acct.equals("")) 我在上面代码中的意思是,如果 Accountid不等于null,并且 Accountid长度大于0 (这两项是支票的组合) 或 Accountid不等于“” 我的代码是否满足我上面提到的这些组合,或者我是否需要添加任何括号??为了满足我上面提到的组合(第一个1和第二个) 谢谢是的,它总是在或之前进行评估,即您的代码与 if ((
if (acct != null && !acct.isEmpty()|| !acct.equals(""))
我在上面代码中的意思是,如果
谢谢是的,它总是在或之前进行评估,即您的代码与
if ((acct != null && !acct.isEmpty()) || !acct.equals(""))
然而,从逻辑上讲,这对我来说毫无意义。你真的需要最后一部分吗?在这个具体的例子中,“acct.isEmpty()”不是和“acct.equals(“”)”一样吗?根据你提出的问题,它应该有如下括号
if ((acct != null && !acct.isEmpty()) || !("".equals(acct) ))
在| |运算符之后,将更改代码,这将避免在acct为NULL时遇到NullPointerException
这个答案解释了有关使用“.equals()的更多信息
isEmpty()
和相等(“”
是完全相同的条件。如果acct
为null,您的测试将抛出NullPointerException
我不知道你到底想做哪项测试,但这次是错的。再次考虑一下,并实施一个单元测试来测试所有情况:
- 空字符串
- 空字符串
- 不是空字符串
acct
为null
时,你会得到一个NullPointerException
。我知道你在说什么,但正如其他人所指出的,这仍然会导致NullPointerException。括号表示将在“| |”的另一侧执行测试,无论“acct=是否为空。