Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java:通过组合处理空检查_Java - Fatal编程技术网

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(""))
我在上面代码中的意思是,如果

  • Accountid不等于null,并且
  • Accountid长度大于0 (这两项是支票的组合)
  • Accountid不等于“”
  • 我的代码是否满足我上面提到的这些组合,或者我是否需要添加任何括号??为了满足我上面提到的组合(第一个1和第二个)


    谢谢

    是的,它总是在或之前进行评估,即您的代码与

    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&&!acct.isEmpty())| |!acct.equals(“”))注意,当
    acct
    null
    时,你会得到一个
    NullPointerException
    。我知道你在说什么,但正如其他人所指出的,这仍然会导致NullPointerException。括号表示将在“| |”的另一侧执行测试,无论“acct=是否为空。