站点微信订阅号zhengjinyibu,欢迎大家搜索关注.
当Enum多用于集合判断的时候,可以使用这种方式
位域 不利于 判别。 也不利于理解。
Enum却利于判断
enumSet源代码学习
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| package com.canal.demo;
import java.util.EnumSet; import java.util.Set;
public class ZookeeperHello {
private static final int ADD =1<<1; private static final int DIVIDE =1<<2; private static final int MULTIPLY =1<<3; private static final int SUB =1<<4;
private static boolean apply(int code){ return false; }
private static boolean apply(Set<Operation> operations){ return operations.contains(Operation.ADD)||operations.contains(Operation.SUB); }
private static enum Operation{ ADD(2), DIVIDE(4), MULTIPLY(8), SUB(16);
private int code;
Operation(int code) { this.code = code; }
public int getCode() { return code; }
}
public static void main(String[] args) {
System.out.println(apply(ADD|SUB)); System.out.println(apply(EnumSet.of(Operation.ADD,Operation.DIVIDE)));
} }
|
本文内容仅作为作者个人兴趣与观点,不代表所在公司及团队的观点和决策。若有不恰当之处,请联系站长.