三元运算符检查 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"));
}
是否可以这样做?
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"));
}