使用异或运算符进行布尔检查是否是良好的实践?

161

在布尔检查的情况下,我个人喜欢使用异或(exclusive or)运算符^,因为它简洁明了。因此,我更喜欢这样写:

if (boolean1 ^ boolean2)
{
  //do it
}

if((boolean1 && !boolean2) || (boolean2 && !boolean1))
{
  //do it
}

但是我经常从其他有经验的Java开发人员(不仅仅是新手)那里得到困惑的表情,有时还会听到关于它只能用于位运算的评论。

我很好奇关于使用^操作符的最佳实践。

12个回答

-3

使用“!=”可以比较两个变量。但是,它不能用于多个比较。


-3
str.contains("!=") ^ str.startsWith("not(")

对我来说看起来更好

str.contains("!=") != str.startsWith("not(")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接