我有枚舉這樣的:我想enum類型變量轉換爲長型的java
enum E{
a,
b
};
E enum1;
我要分配給長值是這樣的:
long p =a;
我怎樣才能做這個?它給錯誤說can't convert enum type to long
。
我有枚舉這樣的:我想enum類型變量轉換爲長型的java
enum E{
a,
b
};
E enum1;
我要分配給長值是這樣的:
long p =a;
我怎樣才能做這個?它給錯誤說can't convert enum type to long
。
在你的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;
}
}
枚舉有一個成員序號公開,你可以使用它。 http://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html#ordinal()
雖然這確實使海報的代碼有效,但它可能不是海報的目的...... – awksp
這是因爲編譯器是正確的。你不能將'Enum'轉換爲''long'。 – awksp
你可以試試'long p = E.a.ordinal();' – anonymous
@anonymous這將取決於海報最初試圖做什麼...... – awksp