当a=null
和b=null
时,它抛出NPE
。
String a,b;
if ((aValue.equals("null")||aValue==null||aValue.isEmpty()) &&
(!bValue.equals("null")||bValue!=null || !bValue.isEmpty()))
我想检查a何时没有值而b何时有值。 如何在没有任何库的情况下使其正确且高效。
最佳答案
必须首先检查
aValue==null
,因为表达式是从左到右计算的,并且 aValue.equals("null")
会抛出 NullPointerException
如果 aValue==null
。
对 bValue
的检查应该在它们之间有 &&
(AND) 条件,因为您要求 bValue
有一个值。同样,应首先评估 bValue!=null
。
if ((aValue==null||aValue.equals("null")||aValue.isEmpty()) &&
(bValue!=null && !bValue.equals("null") && !bValue.isEmpty()))
顺便说一句,您是否期望 aValue
或 bValue
包含 String
“null”?这样的值(value)是否代表“没有值(value)”?如果不是这种情况,则不需要 .equals("null")
测试。
关于java - java中字符串的空值检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31422688/