在实际开发中常会用到选项,选项开启和关闭可以有效的控制代码执行逻辑。
对于选项,我们可以简单的用类的一个属性去判断。也可以使用一些编程技巧,通过一个数字来表示组合选项。
一个简单的例子如下:
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
| public class ByteOption {
public enum Option {
OPTION_1(op1), OPTION_2(op2), OPTION_3(op3), OPTION_4(op4), OPTION_5(op5), OPTION_6(op6), OPTION_7(op7) ;
byte value;
Option(byte i) { value = i; } } public static byte op1 =0b00000001; public static byte op2 =0b00000010; public static byte op3 =0b00000100; public static byte op4 =0b00001000; public static byte op5 =0b00010000; public static byte op6 =0b00100000; public static byte op7 =0b01000000; private static int ALL = 0b11111111;
private byte op = 0b00000000;
public void enableOption(Option option){ op = (byte) (op | option.value); }
public void disableOption(Option option){ op = (byte) (op & (option.value^ALL)); }
public boolean isEnable(Option option){ return option.value == (op & option.value); } }
|