4
我有一個Android應用程序,它從Web資源加載數據並顯示它。我組織了各種源代碼支持的API方法。比方說,SourceA提供體育和天氣數據,SourceB提供股票和新聞數據。處理實現通用接口的枚舉(迭代,反序列化)
public enum ServiceA implements ServiceMethod {
GET_SPORT(...) {...},
GET_WEATHER(...) {...};
...
}
public enum ServiceB implements ServiceMethod {
GET_STOCK(...) {...},
GET_NEWS(...) {...};
...
}
每個枚舉類也有私有成員應對服務API(用於differenc來源不同API)
和ServiceMethod
ServiceMethod method;
... // initializing
String cleanAndFancyData = method.queryData(); // e.g.
不,我需要存儲用戶歷史變量,所以我必須序列化並反序列化ServiceMethod
變量,並枚舉實現此接口的所有枚舉中的所有常量。序列化看起來很簡單,沒有問題。
現在我只是手動遍歷枚舉:
Collection<ServiceMethod> allMethods = new ArrayList<ServiceMethod>();
allMethods.addAll(EnumSet.allOf(ServiceA.class));
allMethods.addAll(EnumSet.allOf(ServiceB.class));
是否有這種更清潔,更好的辦法嗎?或者我的方法完全錯誤? 此外,任何方式確保所有ServiceMethod
具有唯一的名稱(跨所有枚舉)?
對於'EnumSet',+1。 – trashgod