欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2021年02月24日 09:38:59   作者:eulers  
這篇文章主要介紹了java 自定義可繼承枚舉Enum的案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

一、定義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");
}

三、可繼續(xù)繼承枚舉,進行枚舉分類。

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

一、代碼

package base.lang;
/**
 * ClassName: StateEnum 
 * @Description: TODO
 * @author fuming
 * @date 2016年11月27日
 */
public enum StateEnum
{
//添加枚舉的指定常量
online(10),
offline(20);
//必須增加一個構(gòu)造函數(shù),變量,得到該變量的值
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()); 

三、打印結(jié)果

state=20  //測試正常

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • Mybatis自動創(chuàng)建表和更新表結(jié)構(gòu)

    Mybatis自動創(chuàng)建表和更新表結(jié)構(gòu)

    這篇文章主要介紹了Mybatis自動創(chuàng)建表和更新表結(jié)構(gòu)的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-06-06
  • java存儲以及java對象創(chuàng)建的流程(詳解)

    java存儲以及java對象創(chuàng)建的流程(詳解)

    下面小編就為大家?guī)硪黄猨ava存儲以及java對象創(chuàng)建的流程(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • springboot Mongodb的集成與使用實例詳解

    springboot Mongodb的集成與使用實例詳解

    這篇文章主要介紹了springboot Mongodb的集成與使用實例詳解,需要的朋友可以參考下
    2018-04-04
  • Java網(wǎng)絡(luò)編程之URL+URLconnection使用方法示例

    Java網(wǎng)絡(luò)編程之URL+URLconnection使用方法示例

    這篇文章主要介紹了Java網(wǎng)絡(luò)編程之URL+URLconnection使用方法示例,還是比較不錯的,這里分享給大家,供需要的朋友參考。
    2017-11-11
  • IDEA安裝阿里代碼規(guī)范插件的步驟圖文詳解

    IDEA安裝阿里代碼規(guī)范插件的步驟圖文詳解

    這篇文章主要介紹了IDEA安裝阿里代碼規(guī)范插件的步驟,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • Java集合之LinkedHashSet集合詳解

    Java集合之LinkedHashSet集合詳解

    這篇文章主要介紹了Java集合之LinkedHashSet集合詳解,具有可預(yù)知迭代順序的Set接口的哈希表和鏈表列表實現(xiàn),此實現(xiàn)與HashSet不同的是,后者維護著一個運行于所有條目的雙重鏈表列表,此鏈表定義了迭代順序,需要的朋友可以參考下
    2023-09-09
  • 使用SpringBoot根據(jù)配置注入接口的不同實現(xiàn)類(代碼演示)

    使用SpringBoot根據(jù)配置注入接口的不同實現(xiàn)類(代碼演示)

    使用springboot開發(fā)時經(jīng)常用到@Autowired和@Resource進行依賴注入,但是當(dāng)我們一個接口對應(yīng)多個不同的實現(xiàn)類的時候如果不進行一下配置項目啟動時就會報錯,那么怎么根據(jù)不同的需求注入不同的類型呢,感興趣的朋友一起看看吧
    2022-06-06
  • java開發(fā)中的誤區(qū)和細(xì)節(jié)整理

    java開發(fā)中的誤區(qū)和細(xì)節(jié)整理

    這篇文章給大家整理了關(guān)于JAVA開發(fā)中的細(xì)節(jié)以及經(jīng)常進入的誤區(qū)整理,希望我們整理的內(nèi)容能夠給大家提供到幫助。
    2018-04-04
  • Java輸出數(shù)組的3種方法

    Java輸出數(shù)組的3種方法

    這篇文章主要給大家介紹了關(guān)于Java輸出數(shù)組的3種方法,對于初學(xué)者來說,數(shù)組的輸入輸出是一個麻煩的問題,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-07-07
  • Java 如何快速實現(xiàn)一個連接池

    Java 如何快速實現(xiàn)一個連接池

    有沒有一個通用的庫可以快速實現(xiàn)一個線程池呢?得益于 Java 完善的生態(tài),前人們針對這種需要開發(fā)了一個通用庫:Apache Commons Pool(下文簡稱 ACP)。本質(zhì)上來說,ACP 庫提供的是管理對象池的通用能力,當(dāng)然也可以用來管理連接池了!
    2021-05-05

最新評論