我需要使用带有组合框的Enum(下面显示的值)。设计问题|枚举来表示组合框选项
YES (shown as YES on UI, stored in DB as Y) NO (shown as NO on UI, stored in DB as N) DEFAULT (shown as "" on UI, stored in DB as null)
枚举方法具有执行以下 -
- 的toString() - 为UI提供自定义串。 (示出了组合的选项)
- OptionToDB(静态) - 转换所选择的选项,以分贝值(上保存/更新)
DBToOption(静态) - 一个DB值转换为selcted选项(在加载屏幕)
static enum EnumOption{ YES,NO,DEFAULT; .... public static EnumOption DBToOption(String val){ if("Y".equals(val)){ return YES; } else if("N".equals(val)){ return NO; }else { return DEFAULT; } } .... }
它工作得很好,但与上述方法的问题是,它使用的if/else比较来推断要返回哪个选项/ dB值。
我想将dbValue作为字段存储在枚举中,但我无法减少DBToOption中的if/else。
这个if/else可以用任何方式避免使用更好的设计?
另请参阅[这个问题](http://stackoverflow.com/questions/604424/java-convert-string-to-enum)及其第二个答案 –