Java Enum和String及int的相互转化示例

一、定义性别枚举

枚举(enum),是指一个经过排序的、被打包成一个单一实体的项列表。使用枚举增加程序可读性、降低耦合性。

/**

* 性别枚举

*/

public enum Gender {

male("男"),female("女");

private String name;

private Gender(String name) {

this.name = name;

}

public String getName() {

return name;

}

}

二、枚举的基本方法

对于male枚举常量:

public class MyMain {

public static void main(String[] args) {

Gender gender = Gender.male;

System.out.println(gender.toString()); //Gender.male枚举常量的名称

System.out.println(gender.getName());//Gender.male的name值

System.out.println(gender.ordinal());//Gender.male枚举常量的序数

}

}

结果:

三、Enum与String的转化

String maleString = Gender.male.toString(); //Gender转化为String

Gender maleGender = Gender.valueOf("male"); //String转化为Gender,male对应Gender枚举的常量名称

四、Enum与int的转化

int maleInt = Gender.male.ordinal();

//Enum转化为int,返回枚举常量的序数

JAVA Enum指定值的应用(从数据转换为Enum)

enum ACTION{

ac_Entry(10),ac_View(2),ac_Approve(5);

private int _val;

private static final Map<Integer,ACTION> keyMap=new HashMap<Integer,ACTION>();

static{

for (ACTION item:ACTION.values()){

keyMap.put(item._val,item);

}

}

public int getVal(){

return _val;

}

ACTION(int val){

_val=val;

}

public static ACTION fromVal(int pvnVal){

return keyMap.get(pvnVal);

}

}

@Test

public void testEnum(){

ACTION e=ACTION.ac_View;

System.out.println(e+","+e.ordinal()+","+e.getVal());

e=ACTION.fromVal(5);

System.out.println(e+","+e.ordinal()+","+e.getVal());

}

原理,就是用一个map来进行value->enum的转换.

ac_View,1,2

ac_Approve,2,5

到此这篇关于Java Enum和String及int的相互转化示例的文章就介绍到这了,更多相关Java Enum和String及int相互转化内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

以上是 Java Enum和String及int的相互转化示例 的全部内容, 来源链接: utcz.com/z/332210.html

回到顶部