2011-09-26 28 views

回答

35

你不能。正常人從0開始並進行修復。從文檔爲ordinal()

返回枚舉常數的序(它在枚舉聲明,其中初始常量被分配的零序位置)。

您不能指定您自己的值。在另一方面,你可以有你自己的價值觀在枚舉:

public enum Foo { 
    ONE(1), TWO(2); 

    private final int number; 

    private Foo(int number) { 
     this.number = number; 
    } 

    public int getNumber() { 
     return number; 
    } 
} 
4

這就是你怎麼會做手工:

enum MyEnum { 
    ONE(1), 
    TWO(2); 

    private int val; 

    private MyEnum(int val) { 
     this.val = val; 
    } 
} 
1

在其中定義枚舉的順序將決定序。

enum MyEnum { 
    Enum1, Enum2; 
} 

這裏,Enum1將有序號1和Enum2將爲每個枚舉序2.

但是你可以自定義屬性:)

enum MyEnum { 
    Enum1(1), Enum2(2); 

    private int ord ; 

    MyEnum(int ord) { 
     this.ord = ord; 
    } 

    public int getOrd() { 
     return this.ord; 
    } 
} 
+1

是它可以覆蓋序(? – gotch4

+3

不...這是最後的方法,所以它不能被重寫 –

+2

我認爲Enum1將有順序0而不是1.而Enum2將有順序1而不是2。 – RaphMclee