請考慮下面的Java枚舉:非序INT爲ENUM
public enum carrier {
Default(0),
CarrierOne(1),
CarrierTwo(2),
CarrierWhoKnows(102312);
private final int value;
private static final Map<Integer, carrier> carrierMap = new HashMap<Integer, carrier>();
static {
for (carrier type : carrier.values()) {
carrierMap.put(type.value, type);
}
}
private carrier(int value) {
this.value = value;
}
public static int getIntValue(int value) {
return value;
}
public static carrier getStringValue(int value) {
return carrierMap.get(value);
}
}
我需要的是getIntValue返回值,因爲它 (即102312),然而,作爲一個枚舉,而不是一個int 。是否可能 將int值102312作爲枚舉進行投射。 請注意,我不是指序數(我們不使用), 或getStringValue
正確返回的字符串值。 我指的是返回值102312作爲枚舉而不是int。
由於事先
尼克。
不,這是不可能的。你爲什麼要這個? –
從我可以告訴getStringValue完全正確地說你要getIntValue做什麼。請澄清。無論如何,Enums既不是字符串也不是整數;你不能從int轉換到任何類(除了自動裝箱到Integer),因爲int不是一個類。 – Vitruvius
爲什麼你在'getIntValue(int value)'中返回'value'的值?它究竟應該做什麼?最後,'getStringValue'不返回一個'String'。 –