三元运算符检查 null 并同时使用 .equals 设置布尔值

ternary operator check null and set boolean using .equals at same time

是否可以这样做?

dog.setIsBarkingIndicator(mailman.getIsAtDoor() != null && mailman.getIsAtDoor().equals("N") ? false : true);

但是对于我的研究,这基本上是相同的:dog.setIsBarkingIndicator(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() 的空值。

也许 dog 或 mailman 变量为空。所以请尝试以下代码:

if (dog != null && mailman != null)
{
  dog.setIsBarkingIndicator(!mailman.getIsAtDoor().equals("N"));
}