有时候一个类需要一个字段记录状态或者权限等,可能会这样使用
public class StatusTest{
private AtomicInteger status;
// 1:未开始 2:已开始
}
其实也可以使用二进制的形式记录状态,然后根据二进制的运算进行设置,比如
0001:未开始
0010:一开始
然后根据方法设置状态
比如
public class StatusTest{
private AtomicInteger status;
//通过方法改变特定位置的二进制数值根据true/flase也比较容易理解
public void start(boolean start){
status.updateAndGet( v -> start? v | START.mask : ( BIT_STATUS_SUM ^ START.mask ) & v );
}
}
参考:kettle源码:GitHub - pentaho/pentaho-kettle: Pentaho Data Integration ( ETL ) a.k.a Kettle