读书人

一个简略通用的enum工厂类

发布时间: 2013-09-17 13:35:59 作者: rapoo

一个简单通用的enum工厂类

public interface Identifiable<K> {    K getId();}public class EnumFactory {    public static <T extends Enum<T> & Identifiable<K> , K > T getEnum(Class<T> type, K id) {        for (T t : type.getEnumConstants()) {            if(t.getId().equals(id)) {                return t;            }        }        return null;    }}public enum MonthEnum implements Identifiable<Integer>{    January(1),    February(2),    March(3),    April(4),    May(5),    June(6);    int value;    private MonthEnum(int value){        this.value = value;    }    @Override    public Integer getId() {        return this.value;    }}public enum WeekEnum implements Identifiable<String>{    Monday,    Tuesday,    Wednesday,    Thursday,    Friday,    Saturday,    Sunday;    @Override    public String getId() {        return name();    }}public class Client {    public static void main(String[] args) {                WeekEnum we = EnumFactory.getEnum(WeekEnum.class, "Monday");        System.out.println(we);                MonthEnum me = EnumFactory.getEnum(MonthEnum.class, 4);        System.out.println(me);    }}

读书人网 >编程

热点推荐