在大部分程式語言中,枚舉類型都會是一種常用而又必不可少的資料類型,Java當然也不會例外。然而,Java中的Enum枚舉型別卻有著許多你意想不到的用法,以下讓我們一起來看看。
1、可以在enum中加入變數和方法
先來看一段程式碼範例:
public enum State { Normal("正常态", 1), Update("已更新", 2), Deleted("已删除", 3), Fired("已屏蔽", 4); // 成员变量 private String name; private int index; // 构造方法,注意:构造方法不能为public,因为enum并不可以被实例化 private State(String name, int index) { this.name = name; this.index = index; } // 普通方法 public static String getName(int index) { for (State c : State .values()) { if (c.getIndex() == index) { return c.name; } } return null; } // get set 方法 public String getName() { return name; } public void setName(String name) { this.name = name; } public int getIndex() { return index; } public void setIndex(int index) { this.index = index; } }
從上面的程式碼中我們可以看到,定義完枚舉值,然後在其後面加上分號,接著就可以定義其他的變數、方法了。另外要特別說明的是,enum中的建構方法不可以用public標識,這樣做是為了防止使用者實例化enum。
2、可以用來定義常數
先來回顧一下Java中如何定義常數吧,看下面一段程式碼:
public static final int normalState = 1; private static final int updateState = 2;
下面我們還可以用enum枚舉來取代上面的常數定義,程式碼如下:
reee在Java中用enum來定義常數在語法上沒有什麼優勢,但是enum枚舉型別可以提供更多的操作功能。
先來看下面一段程式碼:public enum State { Normal, Update, Deleted, Fired }和一般的類別中使用介面一樣,enum枚舉中同樣可以繼承接口,並實現接口中的所有方法,這樣做的好處在於可以更方便地對枚舉中的值進行排序、比較等操作,封裝性較好。 總結 說穿了,enum枚舉類型是一個不可以被繼承的final類,就以上面的State枚舉為例,如果你查看enum類型的字節碼,其實是State類型的類靜態常數。

本文討論了使用Maven和Gradle進行Java項目管理,構建自動化和依賴性解決方案,以比較其方法和優化策略。

本文使用Maven和Gradle之類的工具討論了具有適當的版本控制和依賴關係管理的自定義Java庫(JAR文件)的創建和使用。

本文討論了使用咖啡因和Guava緩存在Java中實施多層緩存以提高應用程序性能。它涵蓋設置,集成和績效優勢,以及配置和驅逐政策管理最佳PRA

本文討論了使用JPA進行對象相關映射,並具有高級功能,例如緩存和懶惰加載。它涵蓋了設置,實體映射和優化性能的最佳實踐,同時突出潛在的陷阱。[159個字符]

Java的類上載涉及使用帶有引導,擴展程序和應用程序類負載器的分層系統加載,鏈接和初始化類。父代授權模型確保首先加載核心類別,從而影響自定義類LOA


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

記事本++7.3.1
好用且免費的程式碼編輯器

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境