枚举类的应用,带抽象的方法

来源:互联网 发布:与朋友交而不信乎的而 编辑:程序博客网 时间:2024/05/12 07:11
public enum ServiceType {DEFAULT(-1) {@Overridepublic IService getRegistService() {return null;}},APPSTORE(SystemConfig.ServiceTypeConfig.APPSTORE) {@Overridepublic IService getRegistService() {return new AppStoreService();}};public abstract IService getRegistService();public static ServiceType parseFrom(int value) {if (map.containsKey(value)) {return map.get(value);}return DEFAULT;}public static boolean check(int type) {return (parseFrom(type) != DEFAULT);}public static String getRegistedServiceNames() {StringBuilder sb = new StringBuilder();for (ServiceType each : ServiceType.values()) {if (each != DEFAULT) {sb.append("类型[").append(each.getValue()).append("]:").append(each.getRegistService().getServiceName()).append(" ");}}return sb.toString();}private static final Map<Integer, ServiceType> map = new HashMap<Integer, ServiceType>();static {for (ServiceType each : ServiceType.values()) {map.put(each.value, each);}}private final int value;public int getValue() {return value;}private ServiceType(int value) {this.value = value;}}


0 0
原创粉丝点击