Cast Int to enum in Java
MyEnum.values()[x]
is an expensive operation. If the performance is a concern, you may want to do something like this:
public enum MyEnum { EnumValue1, EnumValue2; public static MyEnum fromInteger(int x) { switch(x) { case 0: return EnumValue1; case 1: return EnumValue2; } return null; }}
If you want to give your integer values, you can use a structure like below
public enum A{ B(0), C(10), None(11); int id; private A(int i){id = i;} public int GetID(){return id;} public boolean IsEmpty(){return this.equals(A.None);} public boolean Compare(int i){return id == i;} public static A GetValue(int _id) { A[] As = A.values(); for(int i = 0; i < As.length; i++) { if(As[i].Compare(_id)) return As[i]; } return A.None; }}