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

网友投稿 403 2022-12-04


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(genderhttp://.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 keyMap=new HashMap();

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


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Spring boot如何快速的配置多个Redis数据源
下一篇:vscode快速引入第三方jar包发QQ邮件
相关文章

 发表评论

暂时没有评论,来抢沙发吧~