精华内容
下载资源
问答
  • 在本篇文章里我们给大家整理了关于spring boot 枚举使用的坑以及相关知识点内容,需要的朋友们学习下。
  • 主要介绍了Java枚举使用场景及实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 一、枚举类的使用: 1.枚举类的理解:类的对象只有有限个,确定的。我们称此为枚举类 2.当需要定义一组常量时,强烈建议使用枚举类。 3.如果枚举类中只有一个对象,则可以作为单例模式的实现方式。 二、如何定义枚举...
  • 主要介绍了java枚举使用详细介绍及实现的相关资料,需要的朋友可以参考下
  • Java 中 Switch 结合 枚举使用

    千次阅读 2019-08-28 19:07:07
    Java 中 Switch 结合 枚举使用 Switch和if是Java中常用的判断工具,而当出现大量的if-else时,我们不妨使用Switch和枚举来进行“优化” 举个例子 后端开发时,经常会碰到状态码判断的问题。如果我们用if来判断的话...

    Java 中 Switch 结合 枚举使用

    Switchif是Java中常用的判断工具,而当出现大量的if-else时,我们不妨使用Switch和枚举来进行“优化”

    举个例子

    后端开发时,经常会碰到状态码判断的问题。如果我们用if来判断的话。可能会变成如下:
    if(code == 1){
    }else if(code == 2){
    }else if(code == 3){
    }
    

    但是如果使用Switch和枚举的结合体,就会非常方便。

    枚举类
    @Getter
    @AllArgsConstructor
    public enum ApiEnum {
        SUCCESS(1,"正常"),
        ILLEGALITY_ERROR(101,"请求URL错误"),
        PARAMETER_ERROR(201,"参数错误"),
        AUTHORITY_ERROR(301,"权限错误"),
        UNKNOWN_ERROR(null,"未知错误");
    
        /**
         * 状态码
         */
        private Integer code;
        /**
         * 信息
         */
        private String msg;
    
        /**
         * 根据value返回枚举类型,主要在switch中使用
         * @param value
         * @return
         */
        public static ApiEnum getByValue(int value) {
            for (ApiEnum code : values()) {
                if (code.getCode() == value) {
                    return code;
                }
            }
            return null;
        }
    }
    

    使用时,打印日志时,还可以传入枚举类,方便传递msg

    switch (ApiEnum.getByValue(jsonObject.getIntValue(STATUS_CODE))) {
       case PARAMETER_ERROR:
          //业务逻辑
          logging(ApiEnum.PARAMETER_ERROR);
          break;
       case ILLEGALITY_ERROR:
     	  //业务逻辑
          logging(ApiEnum.ILLEGALITY_ERROR);
          break;
       case AUTHORITY_ERROR:
     	  //业务逻辑
          logging(ApiEnum.AUTHORITY_ERROR);
          break;
       default:
       	  //业务逻辑
          logging(ApiEnum.UNKNOWN_ERROR);
    }
    
    
    /**
    * 打印错误日志
    * @param apiEnum
    */
    private static void logging(ApiEnum apiEnum) {
         log.error("[checkStatus] 调用中经网API 发生异常,code={},msg={}"
         , apiEnum.getCode()
         , apiEnum.getMsg());
        }
    
    展开全文
  • 主要介绍了Mybatis-Plus通用枚举使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • java枚举使用方式

    千次阅读 2019-02-18 20:14:14
    java枚举使用非常广泛,但是在工作过程中发现,大家在使用枚举的过程中,存在着一些误用,没有把枚举的优势完全发挥出来。 本文把枚举的推荐用法、不推荐用法罗列出来,供大家参考。 2、枚举的优势 大家都知道,枚举...

    1、概述

    java枚举使用非常广泛,但是在工作过程中发现,大家在使用枚举的过程中,存在着一些误用,没有把枚举的优势完全发挥出来。

    本文把枚举的推荐用法、不推荐用法罗列出来,供大家参考。

    2、枚举的优势

    大家都知道,枚举是基于静态常量演化而来的,那么枚举有什么优势,为什么不直接使用静态常量呢?

    枚举与静态常量的最显著的优势表现在作为接口参数时:枚举参数要求必须是该枚举类型的入参,如果不是,编译器就会直接报错,即枚举类参数是类型安全的。而静态常量并无这个效果。

    3、推荐用法

    下面对不同情况下,枚举的推荐使用方法进行介绍。

    3.1 枚举定义

    3.1.1 没有必要的参数:

    public enum Operator {
      BIG("BIG","0","大于"),
      BIG_EQUAL("BIG_EQUAL","1","大于等于");
    }
    

    如上所示,枚举有3个入参,代表的含义分别是编号、下标、中文显示。经过分析发现,3个参数都是不应该出现的:
    (1)编号:编号与枚举定义一模一样,可以直接使用枚举值即可。在实际工作中,大多数情况下,编号与枚举保持一致就能满足需求了,如果遇到确实不能满足需求的,比如BIG对应的编号是">",这种情况下,才需要使用编号。
    (2)下标:使用枚举的时候,一般情况下不要使用下标,使用枚举值也能达到同样的效果,而且容易理解。
    (3)中文显示:中文显示不应该定义在枚举类中。如果有前端,该文字应该定义在前端;如果是接口使用,该文字应该配置在message配置文件中。

    3.1.2 根据名称获取枚举

    public static Operator getByValue(String type) {
            if (null == type) {
                return null;
            } else if (BIG.name().equals(type)) {
                return BIG;
            } else if (BIG_EQUAL.name().equals(type)) {
                return BIG_EQUAL;
            }  else {
                return null;
            }
        }
    

    上述的写法有些繁琐,枚举提供了更直接的方式:

    Operator op = Operator.valueOf(type);
    

    3.2 接口入参

    枚举在作为接口入参是枚举优势最大体现的时候,但是下面的用法,枚举的优势荡然无存:

    // 枚举的name作为参数
    public void opt(String  opt) {
        Operator optEnum = Operator.valueOf(opt);
        ......
      }
    // 枚举的下标作为参数
    public void opt(int  opt) {
        if (opt == BIG.ordinal()) {
          ......
        }
      }
    

    正确的用法应该是使用枚举作为参数,不但容易理解,还可以类型校验,输入非Operator,编译器就会报错:

    public void opt(Operator  opt) {
        ......
      }
    

    3.3 参数比较

    枚举是支持直接使用==比较的,所以不需要再使用如下的方式比较了:

    public void opt(RuleLogicalOperator  v1) {
        if (BIG.ordinal() == v1.ordinal()) {
          ......
        }
      }
    public void opt(RuleLogicalOperator  v1) {
        if (BIG.name().equals(v1.name())) {
          ......
        }
      }
    

    直接使用==比较:

    public void opt(RuleLogicalOperator  v1) {
        if (BIG == v1) {
          ......
        }
      }
    

    3.4 其它用法

    3.4.1 switch

    枚举可以在switch中直接使用:

    public void opt(RuleLogicalOperator v1) {
        switch (v1) {
          case BIG:
            ....
          case BIG_EQUAL:
            ....
          default:
            ....
        }
      }
    
    展开全文
  • 本文分步骤给大家介绍了Vue使用枚举类型实现HTML下拉框的相关知识,非常不错,具有参考借鉴价值,需要的朋友可以参考下
  • TypeScript 枚举使用整理

    万次阅读 2017-06-28 17:41:32
    使用枚举我们可以定义一些有名字的数字常量。枚举通过enum关键字定义。 枚举的定义和C#中有些类似。 enum Direction{ Up=1, Down, Left, Right } console.info(Direction);console.info(Direction.Down);//获取...

    一、定义 enum

    使用枚举我们可以定义一些有名字的数字常量。枚举通过enum关键字定义。

    枚举的定义和C#中有些类似。

    enum Direction{
        Up=1,
        Down,
        Left,
        Right
    }
    console.info(Direction);
    console.info(Direction.Down);//获取枚举的值
    console.info(Direction[2]); //获取枚举值对应的名称定义

    枚举结构输出结果

    TypeScript 中Enum定义的详细说明(转子TypeScript中文官网):

    一个枚举类型可以包含零个或多个枚举成员。 枚举成员具有一个数字值,它可以是 常数或是计算得出的值 当满足如下条件时,枚举成员被当作是常数:

    • 不具有初始化函数并且之前的枚举成员是常数。 在这种情况下,当前枚举成员的值为上一个枚举成员的值加1。 但第一个枚举元素是个例外。 如果它没有初始化方法,那么它的初始值为 0
    • 枚举成员使用常数枚举表达式初始化。 常数枚举表达式是TypeScript表达式的子集,它可以在编译阶段求值。 当一个表达式满足下面条件之一时,它就是一个常数枚举表达式:
      • 数字字面量
      • 引用之前定义的常数枚举成员(可以是在不同的枚举类型中定义的) 如果这个成员是在同一个枚举类型中定义的,可以使用非限定名来引用。
      • 带括号的常数枚举表达式
      • +-~ 一元运算符应用于常数枚举表达式
      • +-*/%<<>>>>>&|^ 二元运算符,常数枚举表达式做为其一个操作对象 若常数枚举表达式求值后为 NaNInfinity,则会在编译阶段报错。
    二、常数枚举 const枚举类型被编译成一个对象,它包含双向映射( name ->  value)和( value ->  name)。

    常数枚举是在enum关键字前使用const修饰符。

    常数枚举只能使用常数枚举表达式并且不同于常规的枚举的是它们在编译阶段会被删除。 

    常数枚举成员在使用的地方被内联进来。 这是因为常数枚举不可能有计算成员。

    const enum Directions {
        Up,
        Down,
        Left,
        Right
    }

    三、外部枚举 declare

    外部枚举用来描述已经存在的枚举类型的形状。

    外部枚举和非外部枚举之间有一个重要的区别,在正常的枚举里,没有初始化方法的成员被当成常数成员。 对于非常数的外部枚举而言,没有初始化方法时被当做需要经过计算的。

    declare enum Enum {
        A = 1,
        B,
        C = 2
    }

    更多:

    TypeScript 泛型<T>使用整理

    TypeScript 函数使用整理

    TypeScript 类使用整理

    展开全文
  • C++枚举使用

    万次阅读 2017-12-18 01:41:00
    关于enum class与enum struct以及普通枚举的实例

    关于枚举使用的简单实例
    class与struct在枚举中的使用,表示这是一个强类型的枚举。强类型的形式比普通直接使用enum的好处是,不会被隐式转换成int,相对于C++的强类型而言,自然是使用class或者struct更加符合强类型。
    class与struct都是表示进行强类型的枚举,两者没有什么区别。
    关于class与struct相对于传统的enum的区别,网上到处可得,就不赘述了,使用方法见示例

    #include <stdio.h>
    
    enum { name, pass, };
    enum DAY { MON = 1, TUE, WED, THU, FRI, SAT, SUN };
    enum class ENUM_CLASS { month = 0x1, year, day, };
    enum struct ENUM_STRUCT{ mac = 0x234, acer, think,};
    
    int main()
    {
        int iName = name;
        int iPass = pass;
    
        int iDay;
        iDay = MON;
        // 隐式转换为int
        iDay = DAY::WED;
        enum DAY myDay;
        myDay = TUE;
    
        int iClass;
        // 无法隐式转换,必须进行强制转换为int
        iClass = (int)ENUM_CLASS::month;
        iClass = static_cast<int>(ENUM_CLASS::year);
        ENUM_CLASS myClass;
        myClass = ENUM_CLASS::month;
        myClass = ENUM_CLASS::year;
    
        int iStruct;
        // 无法隐式转换,必须进行强制转换为int
        iStruct = (int)ENUM_STRUCT::acer;
        iStruct = static_cast<int>(ENUM_STRUCT::mac);
        ENUM_STRUCT myStruct;
        myStruct = ENUM_STRUCT::mac;
        myStruct = ENUM_STRUCT::think;
    
        return 0;
    }
    展开全文
  • kotlin 中 枚举使用 Enum

    千次阅读 2019-07-11 16:40:40
    定义枚举类 enum class Color{ RED,BLACK,BLUE,GREEN,WHITE } enum class EnumTests(var age: Int, var dec: String) { EnumA(1, "婴儿"), EnumB(10, "10婴儿"), EnumC(20, "20婴儿"), EnumD(30, "30婴儿.....
  • java enum枚举使用场景及优缺点

    千次阅读 2019-05-28 18:16:25
    jdk1.5推出枚举,在我们的项目可以创建ENUM这样的代码,一方面代码较优雅,另外线程安全 java的enum其实是一个类。编译器根据enum的定义会为你生成一个 java.lang.Enum<E>的子类。java.lang.Enum<E>是...
  • 提供带有可重用枚举和过渡验证的枚举Django模型字段(使用IntegerField )。 安装 当前,Django 1.11-3.1版和Python 2.7、3.4-3.8版。 在您的Python环境中安装django-enumfield : $ pip install django-...
  • protobuf枚举和包的使用,相关教程:http://blog.csdn.net/tennysonsky/article/details/73921295
  • 下面小编就为大家带来一篇Java枚举的七种常见用法总结(必看)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • Java枚举使用技巧

    千次阅读 2018-01-06 20:26:41
    基本概念 枚举是JDK 1.5中引入的新特性。对应的关键字为enum。 其实枚举是一个特殊的类,这个类内部存储的是这个类的所有对象实例。 ...这个时候就可以选择使用枚举了。 对应实例 介绍完适
  • 主要介绍了PHP中Enum(枚举)用法,结合实例形式较为详细的分析了php中Enum(枚举)的实现与使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
  • java 枚举使用中注意的问题

    千次阅读 2016-09-18 13:58:12
    通常在需要使用数据集合的时候,枚举便派上了用场。大多数情况下使用枚举的时候无意识的不会去修改里面的值。那么枚举中的值到底能不能修改呢? 答案是:一旦定义了枚举,最好不要妄图修改里面的值,除非修改是必要...
  • 使用java枚举规范方法命名,了解枚举使用
  • Java枚举使用

    万次阅读 多人点赞 2018-12-26 11:49:43
    1、使用枚举类型设置常量 以往设置常量,通常将常量放置在接口中,这样在程序中就可以直接使用了,并且该常量不能被修改,因为在接口中定义的常量时,该常量的修饰符为final与static。 public interface ...
  • 近用到枚举,由于枚举变量比较多且存在一定的分组分类的关系,所以想能比较清晰的维护这些变量。今晚有空,简单研究了一下,分享出来,供大家讨论。  可供考虑的分类方式  /**  * 枚举接口  *   * @...
  • Java双属性枚举使用

    千次阅读 2018-04-25 18:00:59
    最近有小伙伴问我,双枚举类该怎么写,还得包括根据key取值方法。 于是就手写一个案例如下: /** * 关系类型枚举 * @author : shijing * 2018年4月25日下午5:58:54 */ public enum RelationType { MAPPING...
  • 主要给大家介绍了关于ASP.Net Core中使用枚举类而不是枚举的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用ASP.Net Core具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
  • Java枚举使用以及枚举实现单例模式

    万次阅读 2016-08-22 00:24:12
    JDK 1.5 之前需要自定义枚举类 JDK 1.5 新增的enum关键字用于定义枚举类 若枚举只有一个成员,则可以作为一种单例模式的实现方式。 枚举类型是指由一组固定的常量组成合法值的类型,枚举提供了编译时的类型安全,...
  • 枚举类的使用方法

    万次阅读 多人点赞 2019-06-02 11:50:05
    一、理解枚举类型 枚举类型是Java 5中新增特性的一部分,它是一种特殊的数据类型,之所以特殊是因为它既是一种类(class)类型却又比类类型多了些特殊的约束,但是这些约束的存在也造就了枚举类型的简洁性、安全性...
  • 枚举使用特殊字符

    2012-08-13 23:15:00
    枚举使用特殊字符 枚举中有些特殊字符不能使用,可以用下面的方法实现。 即:Attribute属性 [Description("application/x-www-form-urlencoded")] 然后获取属性的 ToString() 获取 using System; ...
  • enum型也被成为枚举类型,它是一种可以将多个常量分组为一个并附加一系列值的类型,使用枚举定义的常量称为枚举器列表,默认情况下,枚举器从零开始按顺序编号。本篇文章给大家介绍关于JavaScript中枚举类型的使用。...
  • 友情提示:values(), 为什么说特殊呢,因为在Enum 的 API 文档中也找不到这个方法,此方法可以将枚举类转变为一个枚举类型的数组,因为枚举中没有下标,我们没有办法通过下标来快速找到需要的枚举类,这时候,转变...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 505,979
精华内容 202,391
关键字:

枚举的使用