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。这真是聪明。我是如此专注于“复杂”的方式,我甚至没有意识到这一点。谢谢!