java 枚举enum的用法(与在switch中的用法)

网友投稿 322 2022-11-18


java 枚举enum的用法(与在switch中的用法)

实际开发中,很多人可能很少用枚举类型。更多的可能使用常量的http://方式代替。但枚举比起常量来说,含义更清晰,更容易理解,结构上也更加紧密。看其他人的博文都很详细,长篇大论的,这里理论的东西不说了,一起看看在实际开发中比较常见的用法,简单明了。

看看枚举类

/**

* 操作码类

* @author kokJuis

* @version 1.0

* @date 2017-3-6

*/

public enum Code {

SUCCESS(10000, "操作成功"),

FAIL(10001, "操作失败"),

private int code;

private String msg;

//为了更好的返回代号和说明,必须呀重写构造方法

private Code(int code, String msg) {

this.code = code;

this.msg = msg;

}

public int getCode() {

return code;

}

public void setCode(int code) {

this.code = code;

}

public String getMsg() {

return msg;

}

public void setMsg(String msg) {

this.msg = msg;

}

// 根据value返回枚举类型,主要在switch中使用

public static Code getByValue(int value) {

for (Code code : values()) {

if (code.getCode() == value) {

return code;

}

}

return null;

}

}

使用:

//获取代码

int code=Code.SUCCESS.getCode();

//获取代码对应的信息

String msg=Code.SUCCESS.getMsg();

//在switch中使用通常需要先获取枚举类型才判断,因为case中是常量或者int、byte、short、char,写其他代码编译是不通过的

int code=Code.SUCCESS.getCode();

switch (Code.getByValue(code)) {

case SUCCESS:

//......

break;

case FAIL:

//......

break;

}

补充知识:java Switch支持的数据类型及 枚举在Switch case中的使用

最近在学习Groovy,发现Groovy中的Switch case 比Java中的SwKuCrZNbUxitch case强大,于是了解了Java中的Switch case支持的数据类型是有限的,包括int,char,String 和enum四种类型。

之前写android代码的时候,前面3中经常用,但是第4种类型没有使用过,于是尝试使用枚举类型来学些Switch case,代码如下,做个记http://录:

1、先定一个枚举类型:

package com.lwd;

public enum LwdColor {

yello(0,"#0xff00ff00"),

green(1,"#0xff0000ff"),

blue(2,"#0xffffff00");

private int value;

public int getValue() {

return value;

}

public void setValue(int value) {

this.value = value;

}

public String getDesc() {

return desc;

}

public void setDesc(String desc) {

this.desc = desc;

}

private String desc;

LwdColor(int value,String desc){

this.value = value;

this.desc = desc;

}

public static LwdColor getColorType(int type){

for(LwdColor lwdColors:LwdColor.values()){

if(lwdColors.getValue() == type){

return lwdColors;

}

}

return null;

}

}

枚举类中定义了3种颜色,分别是yello、green、blue,构造方法中定义的两个变量,分别是value和desc,value和desc分别对应枚举颜色中的key和value。 提供了一个静态方法,来根据传入的类型来获取对应的枚举值。

2、在Switch case中使用如下:

package com.lwd;

public class TestJava {

public static void main(String[] args){

LwdColor lwdColor = LwdColor.getColorType(0);

switch (lwdColor){

case yello:

System.out.println( lwdColor.getValue() + "的颜色值 == " + lwdColor.getDesc());

break;

}

}

}


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

上一篇:eclipse+jdk安装以及会遇到的问题及解决方法
下一篇:JAVA解决在@autowired,@Resource注入为null的情况
相关文章

 发表评论

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