实际开发中,很多人可能很少用枚举类型。更多的可能使用常量的方式代替。但枚举比起常量来说,含义更清晰,更容易理解,结构上也更加紧密。看其他人的博文都很详细,长篇大论的,这里理论的东西不说了,一起看看在实际开发中比较常见的用法,简单明了。
看看枚举类
/** * 操作码类 * @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中的Switch case强大,于是了解了Java中的Switch case支持的数据类型是有限的,包括int,char,String 和enum四种类型。
之前写android代码的时候,前面3中经常用,但是第4种类型没有使用过,于是尝试使用枚举类型来学些Switch case,代码如下,做个记录:
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; } } }
以上这篇java 枚举enum的用法(与在switch中的用法)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。
本文向大家介绍Java(enum)枚举用法详解,包括了Java(enum)枚举用法详解的使用技巧和注意事项,需要的朋友参考一下 概念 enum的全称为 enumeration, 是 JDK 1.5 中引入的新特性。 在Java中,被 enum 关键字修饰的类型就是枚举类型。形式如下: 如果枚举不添加任何方法,枚举值默认为从0开始的有序数值。以 Color 枚举类型举例,它的枚举常量依次为RED:0
本文向大家介绍详解Swift中enum枚举类型的用法,包括了详解Swift中enum枚举类型的用法的使用技巧和注意事项,需要的朋友参考一下 一、引言 在Objective-C语言中,没有实际上是整型数据,Swift中的枚举则更加灵活,开发者可以不为其分配值类型把枚举作为独立的类型来使用,也可以为其分配值,可以是字符,字符串,整型或者浮点型数据。 二、枚举语法 Swift中enum关键字来进行枚举的
本文向大家介绍java 中枚举类enum的values()方法的详解,包括了java 中枚举类enum的values()方法的详解的使用技巧和注意事项,需要的朋友参考一下 java 中枚举类enum的values()方法的详解 前言: 关于枚举,相信使用的已经很普遍了,现在主要写的是枚举中的一个特殊方法,values(), 为什么说特殊呢,因为在Enum 的 API 文档中也找不到这个方法。接下
由于 PHP 本身不支持枚举类型,imi 特别基于注解实现了枚举类。 枚举类定义 继承Imi\Enum\BaseEnum类,然后在类常量上面写上注解@EnumItem,参数是当前常量的文字说明。 <?php namespace ImiDemo\HttpDemo\MainServer\Enum; use Imi\Enum\BaseEnum; use Imi\Enum\Annotation\Enum
本节介绍枚举类型的定义及其使用,需要定义一组相同主题的常量数据时,应该立即想到枚举类型。在学习过程中,需要注意枚举类型的正向映射和反向映射,可以通过编译后的 JavaScript 源码进行分析,为什么可以进行反向映射。 1. 慕课解释 使用枚举我们可以定义一些带名字的常量。TypeScript 支持数字的和基于字符串的枚举。 2. 定义及使用场景 枚举类型弥补了 JavaScript 的设计不足,
我有两种枚举类型(并希望用户能够添加自己的)。 如果我不在接受枚举类型的方法中使用枚举属性,这就很好。 但是,如果我希望模板E被识别为一个枚举(在这里的开关中使用),我会得到错误“不能打开类型E的值”(在Eclipse中,开关(E)中的“E”带有红色下划线) 我对擦除有一点了解,它在编译时擦除了关于模板的所有信息,所以这就是问题所在。但是我尝试传入clazz类或者实现一个接口都没有成功。对此有什么