JAVA 枚举类型如何跟int或String变量互相转换?
比如有如下枚举类型:
public enum enumType {MOUTH, YEAR, ALL, SELECT}
将枚举类型转换为 int 变量,可以使用枚举类型中的 ordinal()
方法或,它返回枚举常量在枚举中定义时的序数。
enumType year = enumType.YEAR;
int yearInt = year.ordinal();
将 int 变量转换为枚举类型,可以使用枚举类型中的 values()
方法获取所有枚举常量数组,然后根据序号获取对应的枚举常量。比如:
int monthInt = 0;
enumType month = enumType.values()[monthInt];
以下是使用String变量互相转换示例代码;
//定义枚举类型enumType
public enum enumType {MOUTH, YEAR, ALL, SELECT}
//枚举变量iRange
Tools.enumType iRange= Tools.enumType.MOUTH;
//枚举变量iRange转成String
bundle.putString("iRange", iRange.name());
//将String类型的枚举变量还原到枚举类型
iRange = Tools.enumType.valueOf(bundle.getString("iRange")); //string转回枚举类型
//iRange=Tools.enumType.values()[bundle.getInt("iRange")]; //int转回枚举类型
说明:综合来说,个人更推荐优先使用String变量来进行交换,更方便