我需要使用帶有組合框的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)及其第二個答案 –