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

Java中enum枚舉類型的基本特性詳解

 更新時間:2023年11月08日 08:43:28   作者:一只小熊貓呀  
這篇文章主要介紹了Java中enum枚舉類型的基本特性詳解,enum關鍵字用于創(chuàng)建一個新類型,其中包含一組數(shù)量有限的命名變量,并視這些變量為常規(guī)程序組件,實踐表明這是一種非常有用的類型,需要的朋友可以參考下

enum枚舉類型的基本特性

enum關鍵字用于創(chuàng)建一個新類型,其中包含一組數(shù)量有限的命名變量,并視這些變量為常規(guī)程序組件。實踐表明這是一種非常有用的類型

你可以調用枚舉類型中的 values() 方法來遍歷枚舉常量列表。values() 方法生成一個由枚舉常量組成的數(shù)組,其中常量的順序和常量聲明的順序保持一致,這樣你就可以方便地(比如通過for-in循環(huán))使用結果數(shù)組了。

當創(chuàng)建枚舉類型時,編譯器會為你生成一個輔助類,這個類自動繼承自java.lang.Enum。java.lang.Enum提供了下例所示的一些功能:

EnumClass.java

enum Shrubbery {GROUND, CRAWLING, HANGING}
public class EnumClass {
    public static void main(String[] args) {
        for (Shrubbery s : Shrubbery.values()) {
            System.out.println(s + " ordinal: " + s.ordinal());
            System.out.print(s.compareTo(Shrubbery.CRAWLING) + " ");
            System.out.print(s.equals(Shrubbery.CRAWLING) + " ");
            System.out.println(s == Shrubbery.CRAWLING);
            System.out.println(s.getDeclaringClass());
            System.out.println(s.name());
            System.out.println("********************");
        }
        // Produce an enum value from a String name:
        for (String s : "HANGING CRAWLING GROUND".split(" ")) {
            Shrubbery shrub = Enum.valueOf(Shrubbery.class, s);
            System.out.println(shrub);
        }
    }
}

運行結果:

ordinal() 方法返回一個從0開始的int值,代表每個枚舉實例的聲明順序。你可以放心地使用 == 來比較枚舉實例( equals() 和 hashCode() 方法會由編譯器自動為你生成)。Enum 類實現(xiàn)了 Comparable 接口(因此可比較), 所以自動包含了 compareTo() 方法,另外它還實現(xiàn)了 Serializable 接口(因此可序列化)。

如果調用枚舉實例的 getDeclaringClass()方法,則會得到該枚舉實例所屬的外部包裝類。

name() 方法返回枚舉實例被聲明的名稱,使用 toString() 同樣也可以返回該名稱。 value0f() 方法是 Enum 類中的靜態(tài)方法,它根據(jù)傳入的 String, 返回名稱與該 String 匹配的枚舉實例。如果匹配的實例不存在,則拋出異常。

靜態(tài)導入枚舉類型

下面是基礎卷第 6 章中 Burrito.java 類的一個變體:

SpicinessEnum.java

public enum SpicinessEnum {
    NOT, MILD, MEDIUM, HOT, FLAMING
}

Burrito2.java

public class Burrito2 {
    SpicinessEnum degree;

    public Burrito2(SpicinessEnum degree) {
        this.degree = degree;
    }

    @Override
    public String toString() {
        return "Burrito is " + degree;
    }

    public static void main(String[] args) {
        System.out.println(new Burrito2(NOT));
        System.out.println(new Burrito2(MEDIUM));
        System.out.println(new Burrito2(HOT));
    }
}

運行結果:

Burrito is NOT
Burrito is MEDIUM
Burrito is HOT

static import 將所有的枚舉實例標識符都引入了本地命名空間,因此它們不需要顯式地使用枚舉類型來限定。相較于顯式地用枚舉類型來限定枚舉實例,哪種方式更好呢?這很大程度上要視代碼的復雜程度而定。編譯器肯定會保障類型的正確性,所以你唯一要關心的就是代碼的可讀性如何。一般來說不會有大問題,但還是要根據(jù)具體情況評估。

注意,如果枚舉定義在同一個文件中,或者定義在默認包中,則無法使用該方式(顯然在Sun公司的內部,對于是否允許這種情況有過一些爭論)。

到此這篇關于Java中enum枚舉類型的基本特性詳解的文章就介紹到這了,更多相關enum枚舉類型的基本特性內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • spring中@ComponentScan自動掃描并指定掃描規(guī)則

    spring中@ComponentScan自動掃描并指定掃描規(guī)則

    本文主要介紹了spring中@ComponentScan自動掃描并指定掃描規(guī)則,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-04-04
  • java下載url路徑包含中文需要轉義的操作

    java下載url路徑包含中文需要轉義的操作

    這篇文章主要介紹了java下載url路徑包含中文需要轉義的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • Java多線程按指定順序同步執(zhí)行

    Java多線程按指定順序同步執(zhí)行

    這篇文章主要介紹了java多線程如何按指定順序同步執(zhí)行,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-10-10
  • 基于IDEA創(chuàng)建SpringMVC項目流程圖解

    基于IDEA創(chuàng)建SpringMVC項目流程圖解

    這篇文章主要介紹了基于IDEA創(chuàng)建SpringMVC項目流程圖解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-10-10
  • java不用循環(huán)語句打印數(shù)組元素的實例

    java不用循環(huán)語句打印數(shù)組元素的實例

    下面小編就為大家?guī)硪黄猨ava不用循環(huán)語句打印數(shù)組元素的實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • Spring Boot自定義Banner實現(xiàn)代碼

    Spring Boot自定義Banner實現(xiàn)代碼

    這篇文章主要介紹了Spring Boot自定義Banner實現(xiàn)代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-01-01
  • 關于SpingMVC的<context:component-scan>包掃描踩坑記錄

    關于SpingMVC的<context:component-scan>包掃描踩坑記錄

    這篇文章主要介紹了關于SpingMVC的<context:component-scan>包掃描踩坑記錄,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Java 實現(xiàn)微信和支付寶支付功能

    Java 實現(xiàn)微信和支付寶支付功能

    這篇文章主要介紹了Java 實現(xiàn)微信和支付寶支付功能,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • 淺析EasyExcel如何導出自動回顯中文

    淺析EasyExcel如何導出自動回顯中文

    這篇文章主要為大家詳細介紹了EasyExcel如何通過全局轉換器和自定義注解實現(xiàn)導出自動回顯中文,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2025-04-04
  • BeanDefinitionRegistryPostProcessor如何動態(tài)注冊Bean到Spring

    BeanDefinitionRegistryPostProcessor如何動態(tài)注冊Bean到Spring

    這篇文章主要介紹了BeanDefinitionRegistryPostProcessor如何動態(tài)注冊Bean到Spring,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03

最新評論