国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

java 自定義可繼承枚舉Enum的案例

瀏覽:55日期:2022-08-16 13:04:21
一、定義enum抽象類

public class AbstractEnum { private static final Map<String, AbstractEnum> nameEnumMap = new ConcurrentHashMap<>(); @Getter protected String name; protected AbstractEnum () { } protected AbstractEnum(String name) { this.name = name; if (!nameEnumMap.containsKey(name)) { nameEnumMap.put(name, this); } } public boolean equals(AbstractEnum abstractEnum) { return this.name == null || abstractEnum == null ? false : this.name.equals(abstractEnum.getName()); } public String toString() { return this.name; } public static AbstractEnum valueOf(String name) { if (name == null) throw new NullPointerException('Name is null'); AbstractEnum result = nameEnumMap.get(name); if (result != null) { return result; } throw new IllegalArgumentException( 'No enum constant exists, name is.' + name); } public static void init() { } }二、實際繼承enum,與enum使用方法一致

public class TypeEnum extends AbstractEnum { private static final Map<String, TypeEnum> nameEnumMap = new ConcurrentHashMap<>(); protected TypeEnum(String name) { super(name); if (!nameEnumMap.containsKey(name)) { nameEnumMap.put(name, this); } } public static TypeEnum valueOf(String name) { if (name == null) throw new NullPointerException('Name is null'); TypeEnum result = nameEnumMap.get(name); if (result != null) { return result; } throw new IllegalArgumentException( 'No enum constant exists, name is.' + name); } public static final TypeEnum TYPE_ONE = new TypeEnum('TYPE_ONE');}三、可繼續繼承枚舉,進行枚舉分類。

補充:Java中自定義枚舉(Enum)項的值,可設置為指定的值

一、代碼

package base.lang;/** * ClassName: StateEnum * @Description: TODO * @author fuming * @date 2016年11月27日 */public enum StateEnum{//添加枚舉的指定常量online(10),offline(20);//必須增加一個構造函數,變量,得到該變量的值private int mState=0;private StateEnum(int value){mState=value;}/*** @return 枚舉變量實際返回值*/ public int getState() { return mState; } }二、示例

//enum StateEnum orderState=StateEnum.offline; //orderState=StateEnum.online; System.out.println('state='+ orderState.getState()); 三、打印結果

state=20 //測試正常

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。如有錯誤或未考慮完全的地方,望不吝賜教。

標簽: Java
相關文章:
主站蜘蛛池模板: 鹰潭市| 高陵县| 称多县| 墨竹工卡县| 两当县| 依安县| 松阳县| 武隆县| 曲麻莱县| 张家界市| 巴林右旗| 漯河市| 穆棱市| 徐闻县| 股票| 瓦房店市| 襄垣县| 平舆县| 灵台县| 宣恩县| 金堂县| 武山县| 常州市| 射洪县| 文昌市| 连南| 进贤县| 合肥市| 深水埗区| 浦东新区| 宜丰县| 济南市| 图木舒克市| 襄汾县| 潮州市| 涡阳县| 潢川县| 呼伦贝尔市| 二连浩特市| 桑日县| 扎囊县|