在项目中,我看到以下代码:
//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;
Run Code Online (Sandbox Code Playgroud)
有人可以解释我到底&=
和|=
手段?
我理解为,如果可以接受,那么也检查右侧并将操作的值(false/true)分配给可接受的,这样如果它是假的,那么它将不需要检查右侧.
就像
a += b;
Run Code Online (Sandbox Code Playgroud)
手段
a = a+b;
Run Code Online (Sandbox Code Playgroud)
, 你有
a &= b;
Run Code Online (Sandbox Code Playgroud)
含义
a = a&b;
Run Code Online (Sandbox Code Playgroud)
当然也是如此|=
.
对于其语法继承自C语言的大多数语言中的其他运算符,您具有相同的构造.请看这个例子:Linux内核源代码中的">> ="是什么意思?
另请参阅java中的赋值运算符的完整列表.
归档时间: |
|
查看次数: |
228 次 |
最近记录: |