在我们的示例中,我们可以选择定义一个枚举类型,它将限制可能的指定值(即改进的类型安全性):
public class OfficePrinter { public enum PrinterState { Ready,OutOfToner,Offline }; public static final PrinterState STATE = PrinterState.Ready; } static final char MY_A_CONST = 'a';
解决方法
想象一下这两个方法签名:
void rawF(char someFlag); void enumF(MyFlags someFlag);
后者更具限制性,因为只允许MyFlags的有效值.在前一种情况下,任何字符都可以传递 – 即使只使用了“常量”中定义的值.
快乐的编码.