枚举类是程序中常用的一种类型,当经常面对说明与标识混乱的情况。在此记录一个枚举类的写法,方便标识与说明的绑定

基类:

import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;public abstract class StandardType {    private String key;    private String  ;    public StandardType(String key, String  ) {        this.  =  ;        this.key = key;    }    public String get () {        return  ;    }    public static String get (StandardType[] values, String key) {        StandardType val = StandardType.getEnum(values, key);        if (val == null) {            return null;        } else {            return val.get ();        }    }    public String getKey() {        return key;    }    public static String getKey(StandardType[] values, String  ) {        for (StandardType val : values) {            if (val.get ().equals( )) {                return val.getKey();            }        }        return null;    }    public static StandardType getEnum(StandardType[] values, String key) {        for (StandardType val : values) {            if (val.getKey().equals(key)) {                return val;            }        }        return null;    }    public String toString() {        return key;    }    public boolean equals(StandardType type) {        if (type == null) {            return false;        }        return this.key.equals(type.getKey());    }    /**     * get value options  d on values     *      * @param values     * @return     */    public static List<Map<String, String>> getOpts(StandardType[] values) {        List<Map<String, String>> opts = new ArrayList<Map<String, String>>();        Map<String, String> opt = null;        for (StandardType val : values) {            opt = new HashMap<String, String>();            opt.put("key", val.getKey());            opt.put(" ", val.get ());            opts.add(opt);        }        return opts;    }    /**     * get value options  d on values(Fuzzy query)     *      * @param values     * @return     */    public static List<Map<String, String>> getSimilarOpts(StandardType[] values, String input) {        List<Map<String, String>> opts = new ArrayList<Map<String, String>>();        Map<String, String> opt = null;        for (StandardType val : values) {            if (val.get ().contains(input)) {                opt = new HashMap<String, String>();                opt.put("key", val.getKey());                opt.put(" ", val.get ());                opts.add(opt);            }        }        return opts;    }}

枚举类:

    /**     * 支付方式     */    public static class PayWay extends StandardType {        public final static PayWay WeChatPay = new PayWay("WeChatPay", "微信支付");        public final static PayWay AliPay = new PayWay("AliPay", "支付宝支付");        public final static PayWay UnionPay = new PayWay("UnionPay", "银联支付");        public final static PayWay CashPay = new PayWay("CashPay", "现金支付");        public final static PayWay[] values = { WeChatPay, AliPay, UnionPay, CashPay };        public PayWay(String key, String  ) {            super(key,  );        }    }

使用:

    public static void main(String[] args) {        PayWay.AliPay.toString();// AliPay        // dome1        StandardType patWay = PayWay.getEnum(PayWay.values, "AliPay");        patWay.getKey();// AliPay        patWay.get ();// 支付宝支付        // dome2        PayWay.getKey(PayWay.values, "支付宝支付");// AliPay        PayWay.get (PayWay.values, "AliPay");// 支付宝支付        // dome3        List<Map<String, String>> listMap1 = PayWay.getOpts(PayWay.values);//所有map        List<Map<String, String>> listMap2 = PayWay.getSimilarOpts(PayWay.values, "支");//一条支付宝的map    }

 

遗失的拂晓
收藏 打印