Java5 枚舉類詳解及實(shí)例代碼
枚舉(enum)類型是Java 5新增的特性,它是一種新的類型,允許用常量來(lái)表示特定的數(shù)據(jù)片斷,而且全部都以類型安全的形式來(lái)表示。
1、常量的使用
在JDK1.5之前,我們定義常量都是:public static fianl....?,F(xiàn)在好了,有了枚舉,可以把相關(guān)的常量分組到一個(gè)枚舉類型里,而且枚舉提供了比常量更多的方法。
package com; public enum Color { RED, GREEN, BLANK, YELLOW }
使用
package com; public class B { public static void main(String[] args) { System.out.println( isRed( Color.BLANK ) ) ; //結(jié)果: false System.out.println( isRed( Color.RED ) ) ; //結(jié)果: true } static boolean isRed( Color color ){ if ( Color.RED.equals( color )) { return true ; } return false ; } }
或者 switch 的使用
package com; public class B { public static void main(String[] args) { showColor( Color.RED ); } static void showColor(Color color){ switch ( color ) { case BLANK: System.out.println( color ); break; case RED : System.out.println( color ); break; default: System.out.println( color ); break; } } }
2、自定義函數(shù)
package com; public enum Color { RED("紅色", 1), GREEN("綠色", 2), BLANK("白色", 3), YELLO("黃色", 4); private String name ; private int index ; private Color( String name , int index ){ this.name = name ; this.index = index ; } 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; } }
使用
package com; public class B { public static void main(String[] args) { //輸出某一枚舉的值 System.out.println( Color.RED.getName() ); System.out.println( Color.RED.getIndex() ); //遍歷所有的枚舉 for( Color color : Color.values()){ System.out.println( color + " name: " + color.getName() + " index: " + color.getIndex() ); } } }
結(jié)果
紅色
1
RED name: 紅色 index: 1
GREEN name: 綠色 index: 2
BLANK name: 白色 index: 3
YELLO name: 黃色 index: 4
總結(jié):
1、枚舉的本質(zhì)是類,在沒有枚舉之前,仍然可以按照java最基本的編程手段來(lái)解決需要用到枚舉的地方。枚舉屏蔽了枚舉值的類型信息,不像在用public static final定義變量必須指定類型。枚舉是用來(lái)構(gòu)建常量數(shù)據(jù)結(jié)構(gòu)的模板,這個(gè)模板可擴(kuò)展。枚舉的使用增強(qiáng)了程序的健壯性,比如在引用一個(gè)不存在的枚舉值的時(shí)候,編譯器會(huì)報(bào)錯(cuò)。枚舉的更多用法還需要在開發(fā)中去研究創(chuàng)造,Java5、Java6增加了不少新的特性,技術(shù)在升級(jí),對(duì)程序員來(lái)說(shuō)就要學(xué)習(xí),如果你熱愛java的話。否則別人用到新特性的代碼你看不懂,那才叫郁悶。
2、枚舉在Java家族中只占了很小的一塊比重,所以我在項(xiàng)目中用枚舉的地方不是很多,畢竟,一個(gè)項(xiàng)目是很多人開發(fā)維護(hù)的,用一個(gè)陌生的東西,會(huì)給其他的同事造成閱讀困難。所以常量大都是用public static final 來(lái)定義的。
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
關(guān)于java入門與java開發(fā)環(huán)境配置詳細(xì)教程
這篇文章主要介紹了關(guān)于java入門與java開發(fā)環(huán)境配置詳細(xì)教程,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03SpringBoot+shardingsphere實(shí)現(xiàn)按月分表功能教程
這篇文章主要介紹了SpringBoot+shardingsphere實(shí)現(xiàn)按月分表功能教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-04-04Jenkins如何實(shí)現(xiàn)自動(dòng)打包部署linux
這篇文章主要介紹了Jenkins如何實(shí)現(xiàn)自動(dòng)打包部署linux,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11SpringBoot 集成JUnit5的詳細(xì)操作過(guò)程
JUnit5是最新的Java單元測(cè)試框架,提供了靈活的測(cè)試支持,它由JUnit Platform、JUnit Jupiter和JUnit Vintage組成,支持不同環(huán)境下的測(cè)試運(yùn)行,SpringBoot從2.2版本開始默認(rèn)支持JUnit5,本文介紹了SpringBoot 集成JUnit5的相關(guān)知識(shí),感興趣的朋友跟隨小編一起看看吧2024-10-10Java結(jié)合EasyExcel構(gòu)建復(fù)雜多級(jí)表頭
在Java開發(fā)中,處理Excel文件時(shí),構(gòu)建復(fù)雜的多級(jí)表頭是一項(xiàng)常見且具有挑戰(zhàn)性的任務(wù),下面小編就來(lái)和大家聊聊如何通過(guò)自定義方法實(shí)現(xiàn)多級(jí)表頭的構(gòu)建吧2025-03-03mybatis中返回多個(gè)map結(jié)果問(wèn)題
這篇文章主要介紹了mybatis中返回多個(gè)map結(jié)果問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06java獲取兩個(gè)數(shù)組中不同數(shù)據(jù)的方法
這篇文章主要介紹了java獲取兩個(gè)數(shù)組中不同數(shù)據(jù)的方法,實(shí)例分析了java操作數(shù)組的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-03-03