Java 将枚举类型与int或String变量互相转换

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变量来进行交换,更方便

猜你喜欢

转载自blog.csdn.net/wh445306/article/details/131263523