当前位置: 首页 > 编程笔记 >

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

郭星文
2023-03-14
本文向大家介绍java 枚举enum的用法(与在switch中的用法),包括了java 枚举enum的用法(与在switch中的用法)的使用技巧和注意事项,需要的朋友参考一下

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

看看枚举类

/**
 * 操作码类
 * @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类或者实现一个接口都没有成功。对此有什么