前端传入复选值
1:汉堡
2:奶茶
4:薯条
8:披萨
16:冰淇淋
复选为值相加。
int number = bo.getCheckItem();//7为汉堡+奶茶+薯条
List<Integer> items = new ArrayList<>();
for (int i = 0; i < 32; i++) {
if (((1 << i) & number) != 0) {
items.add(1 << i);
}
}
(1 << i) & number
- 1<<i :只有右数第i位是1,其他都是0。
- & number:number的第i位是否为1, 如为1,添加进list
int number = bo.getCheckItem();//7为汉堡+奶茶+薯条
List<Integer> items= new ArrayList<>();
Enum[] values = Enum.values();
for (UpgradeInfoSourceEnum value : values) {
int i = value.getValue();
int i1 = number & i;
if (i1 == i) {
result.add(i);
}
}