2014-05-02 79 views
-1

我有枚舉這樣的:我想enum類型變量轉換爲長型的java

enum E{ 
    a, 
    b 
}; 

E enum1; 

我要分配給長值是這樣的:

long p =a; 

我怎樣才能做這個?它給錯誤說can't convert enum type to long

+2

這是因爲編譯器是正確的。你不能將'Enum'轉換爲''long'。 – awksp

+0

你可以試試'long p = E.a.ordinal();' – anonymous

+0

@anonymous這將取決於海報最初試圖做什麼...... – awksp

回答

2

在你的enum調用getLong()中寫一個方法,並從那裏返回你想要的Long變量。你可以撥打long foo = enum1.getLong()

你將不得不修改你的枚舉。

public enum foo 
    enum1(longfoo) //longfoo is the long number you want to return from enum1. 

    private foo(Long longfoo){ 
     this.longfoo = longfoo; 
    } 

    private Long longfoo; 

    public Long getLong(){ 
     return longfoo; 
    } 
} 
+0

這不需要爲每個枚舉定義一個私有構造函數和變量嗎? – awksp

+0

是的。我正在更新我的答案 – JamesENL

+0

查看完整解決方案的更新答案 – JamesENL