在一个项目中,我看到以下代码:
//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。