枚举类是程序中常用的一种类型,当经常面对说明与标识混乱的情况。在此记录一个枚举类的写法,方便标识与说明的绑定
基类:
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 }
遗失的拂晓
继续阅读与本文标签相同的文章
-
linux压缩和解压缩命令大全--费元星站长
2026-05-26栏目: 教程
-
Mysql中的Redo Log解析(一)
2026-05-26栏目: 教程
-
系统编程语言Rust特点介绍(1)
2026-05-26栏目: 教程
-
有关OPC UA over TSN的常见问题解答
2026-05-26栏目: 教程
-
类图画法?这样记
2026-05-26栏目: 教程
