0
我有一個枚舉,並且每個值都有一個整數值。我的一個函數接受枚舉。在函數體中,我想獲取關聯的int值。我現在正在做的是在靜態塊中創建一個映射(枚舉爲鍵,整數代碼爲值),並使用此映射獲取與枚舉相對應的代碼。這是做這件事的正確方法嗎?或者有沒有更好的方法來實現這一目標?將int值與枚舉相關聯並獲取相應的int值
public enum TAXSLAB {
SLAB_A(1),
SLAB_B(2),
SLAB_C(5);
private static final Map<TAXSLAB, Integer> lookup = new HashMap<TAXSLAB, Integer>();
static {
for(TAXSLAB w : EnumSet.allOf(TAXSLAB.class)) {
lookup.put(w, w.getCode());
}
}
private int code;
private TAXSLAB(int code) {
this.code = code;
}
public int getCode() {
return code;
}
public static int getCode(TAXSLAB tSlab) {
return lookup.get(tSlab);
}
}
這裏是相關的SO帖子。但是這裏的答案是建議創建一個int值作爲鍵值的映射。因此,這不能被用來獲取使用枚舉數值,而不通過地圖迭代
你試過在你的enum上調用.ordinal()嗎? – Paddyd
@Paddyd他的int參數與序號不匹配。 – EpicPandaForce
@EpicPandaForce是啊,我只注意到:/ – Paddyd