웹 소스에서 데이터를로드하고 표시하는 Android 애플리케이션이 있습니다. 소스별로 열거 된 enum 상수에서 해당 소스가 지원하는 각 API 메소드를 구성했습니다. SourceA가 Sport 및 Weather 데이터를 제공하고 SourceB가 Stock 및 News 데이터를 제공한다고 가정 해 봅시다.공통 인터페이스 구현 (ener) 처리 (반복, 비 직렬화)
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.
I 사용자 기록을 저장할 필요가 없음의 변수를 가지고, 그래서 나는 serialize하고 ServiceMethod
변수를 deserialize하고이 인터페이스를 구현하는 모든 enum에서 모든 상수를 열거해야합니다. 직렬화가 단순 해 보이며 문제가되지 않습니다.
지금은 단지 수동으로 반복 열거 :
Collection<ServiceMethod> allMethods = new ArrayList<ServiceMethod>();
allMethods.addAll(EnumSet.allOf(ServiceA.class));
allMethods.addAll(EnumSet.allOf(ServiceB.class));
이를위한 청소기, 더 좋은 방법이 있나요? 또는 내 접근 방식이 완전히 잘못 되었습니까? 또한 모든 ServiceMethod
이 (모든 열거 형에서) 고유 한 이름을 갖도록하는 방법은 무엇입니까?
'EnumSet'에 +1. – trashgod