Java下枚舉變數與其他資料類型的轉換

來源:互聯網
上載者:User

Java下枚舉變數與其他資料類型的轉換

當使用enum定義一個枚舉類型時,實際上所定義的類型自動繼承了java.lang.Enum類。而每個被枚舉的成員實質就是一個枚舉類型的執行個體,他們預設都是public static final的。可以直接通過枚舉類型名直接使用它們,枚舉類型名,可以轉為一個數值,或作字元匹配的方法來識別類型,所以我們在寫枚舉類型的時候,可以簡單理解為一個個的串

如下:

public enum emOrder {
        orOne, orTwo, orClass   
    }

emOrder ot = emOrder.orTwo;

錯誤的做法:String str = "我是第"  + ot + "個進入皇室的成員"

得到的結果將是:“我是第orTwo個進入皇室的成員”

正確的做法:String str = "我是第"  + String.valueOf(nSoftType.ordinal()+1) + "個進入皇室的成員"

得到的結果將是:“我是第2個進入皇室的成員”

 

 

------------------

java.lang.Enum類public abstract class Enum<E extends Enum<E>>extends Objectimplements Comparable<E>, Serializable這是所有 Java 語言枚舉類型的公用基本類。------------------構造方法摘要protected Enum(String name,int ordinal)    單獨的構造方法。程式員無法調用此構造方法。該構造方法用於由響應枚舉型別宣告的編譯器發出的代碼。    參數:    name - - 此枚舉常量的名稱,它是用來聲明該常量的標識符。    ordinal - - 枚舉常量的序數(它在枚舉聲明中的位置,其中初始常量序數為零)。------------------方法摘要protected Object clone()          拋出 CloneNotSupportedException。int compareTo(E o)          比較此枚舉與指定對象的順序。在該對象小於、等於或大於指定對象時,分別返回負整數、零或正整數。 枚舉常量只能與相同枚舉類型的其他枚舉常量進行比較。該方法實現的自然順序就是聲明常量的順序。boolean equals(Object other)          當指定對象等於此枚舉常量時,返回 true。Class<E> getDeclaringClass()          返回與此枚舉常量的枚舉類型相對應的 Class 對象。若且唯若 e1.getDeclaringClass() == e2.getDeclaringClass() 時,兩個枚舉常量 e1 和 e2 的枚舉類型才相同。(由該方法返回的值不同於由 Object.getClass() 方法返回的值,Object.getClass() 方法用於帶有特定常量的類主體的枚舉常量。)int hashCode()          返回枚舉常量的雜湊碼。String name()          返回此枚舉常量的名稱,在其枚舉聲明中對其進行聲明。 與此方法相比,大多數程式員應該優先考慮使用 toString() 方法,因為 toString 方法返回更加方便使用的名稱。該方法主要設計用於特殊情形,其正確性取決於獲得正確的名稱,其名稱不會隨版本的改變而改變int ordinal()          返回枚舉常量的序數(它在枚舉聲明中的位置,其中初始常量序數為零)。 大多數程式員不會使用此方法。它被設計用於複雜的基於枚舉的資料結構,比如 EnumSet 和 EnumMap。String toString()          返回枚舉常量的名稱,它包含在聲明中。public static <T extends Enum<T>> T valueOf(Class<T> enumType, String name)          返回帶指定名稱的指定枚舉類型的枚舉常量。名稱必須與在此類型中聲明枚舉常量所用的標識符完全符合。(不允許使用額外的空白字元。)   參數:   enumType - 要從中返回常量的枚舉類型的 Class 對象   name - 要返回的常量名稱注意:ordinal() 方法得到枚舉順序的索引,預設從0開始。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.