Java 三元运算符检查null并同时使用.equals设置布尔值
有可能这样做吗Java 三元运算符检查null并同时使用.equals设置布尔值,java,conditional-statements,conditional-operator,Java,Conditional Statements,Conditional Operator,有可能这样做吗 dog.setIsBarkingIndicator(mailman.getIsAttoor()!=null&&mailman.getIsAttoor().equals(“N”)?false:true) 但就我所研究的而言,这基本上与:dog.setisbarkingdicator(mailman.getIsAtDoor()==null | | |!mailman.getIsAtDoor().equals(“N”) 所以,如果它的null或不等于“N”,它实际上将它设置为false
dog.setIsBarkingIndicator(mailman.getIsAttoor()!=null&&mailman.getIsAttoor().equals(“N”)?false:true)代码>
但就我所研究的而言,这基本上与:dog.setisbarkingdicator(mailman.getIsAtDoor()==null | | |!mailman.getIsAtDoor().equals(“N”)
所以,如果它的null或不等于“N”,它实际上将它设置为false?我理解对了吗
是否有任何方法可以在不使用if条件的情况下检查null
谢谢大家! 因此,您的逻辑条件基本上如下所示:
mailman.getIsAtDoor()==null | |!mailman.getIsAtDoor().equals(“N”)
您可以更改执行equal
操作的实例。这里的一个实例是常量字符串文字-这意味着它永远不是空值,因此它可以始终执行相等操作。您要查找的条件如下:
!“N”.equals(mailman.getIsAtDoor())
这种方法不需要您检查mailman.getIsAtDoor()的null值
可能dog或mailman变量为null。因此,请尝试以下代码:
if (dog != null && mailman != null)
{
dog.setIsBarkingIndicator(!mailman.getIsAtDoor().equals("N"));
}
为什么要在这里避免检查null?这只是我做的一个示例,但在我实际工作的应用程序中,我可以得到一个null点异常。可能dog或mailman变量为null。这真是聪明。我是如此专注于“复杂”的方式,我甚至没有意识到这一点。谢谢!