java - &= 和 |= 在 Java 中

标签 java operators

在一个项目中,我看到如下代码:

//f is a File
boolean acceptable = true;
acceptable &= sweepFilename != null;
acceptable &= f.getName().equals(sweepFilename.toString()); // parsable
acceptable &= id == null || id.equals(sweepFilename.getId());
acceptable &= length == null || length.equals(sweepFilename.getLength());
acceptable &= f.getName().toLowerCase().endsWith(SweepFilename.EXTENSION);
acceptable |= f.isDirectory();
return acceptable;

谁能解释一下 &=|= 是什么意思?

我的理解是,如果 acceptable 为 true 则也检查右侧并将操作的值 (false/true) 分配给 acceptable,这样如果它为 false,则不需要检查右侧.

最佳答案

就像

a += b;

表示

a = a+b;

,你有

a &= b;

意义

a = a&b;

当然 |= 也是如此。

大多数语言中的其他运算符具有相同的结构,其语法继承自 C 语言。例如:What does ">>=" mean in Linux kernel source code?

另见 the complete list of assignment operators in java .

关于java - &= 和 |= 在 Java 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12211356/

相关文章:

java - (Java) 在嵌套 if 语句中使用关系运算符比较 char 值

c - 逗号运算符 , 的作用是什么?

Javascript ||,如何比较多个变量的值?

javascript - 最佳实践 "OR"和 "Ternary"运算符

java - 如何在Java中基于节点枚举对象?

java - 尽管设置了必要的属性,列表项也不会保持选中状态

java - 取消引用可空对象有哪些模式?

java - 如何在java中使用带有空格的枚举

java - 我可以在加载 Clip 对象后关闭 AudioInputStream 吗?

java - 如何从数组中删除图像