springboot-枚举enumration的应用

本文介绍了枚举在Java中的使用,将其与Map集合进行类比,并通过示例展示如何创建和使用枚举类。枚举提供了一种安全且结构化的常量定义方式,相较于传统的常量定义,枚举在某些场景下更具优势。同时,枚举类还可以包含方法和逻辑,增加了灵活性。文章还提到了枚举的强引用特性及不可继承性,并提及了与常量的比较和选择。
摘要由CSDN通过智能技术生成

技术目标:

常量的定义在代码中广泛应用,但基于常量,还有一个枚举也同样方便,但用到的频率却偏低了很多,在这里给大家介绍一下枚举enumration的应用。`


技术实现:

  1. 首先,要了解一下枚举的定义,百度百科里是这么说的:在数学和计算机科学理论中,一个集的枚举是列出某些有穷序列集的所有成员的程序,或者是一种特定类型对象的计数。

  2. java中的枚举enumration
    使用习惯后,你会发现enumration在java中,类似于<K,V>模式的Map的集合(在这里就不谈原理和底层了,想深入了解的可以去搜一下相关文章)。

  3. enumration的实际应用

在这里插入图片描述

  • 首先创建枚举类
/**
 * 枚举类
 */
@Getter
@AllArgsConstructor
public enum DataOpEnum {
    ADD("add","新增"),
    DEL("del","删除"),
    ;
    @Setter
    private String code;
    @Setter
    private String value;
}

其中,@Getter/@Setter和@AllArgsConstructor是lombok包的注解,可以代替get/set和构造方法。


实现结果:

创建完枚举类,就可以创建一个测试类试一下了。

/**
 * 枚举测试类
 */
@RunWith(SpringRunner.class)
@SpringBootTest
public class EnumTest {
    @Test
    public void test(){
        String dataAddCode = DataOpEnum.ADD.getCode();
        String dataAddValue = DataOpEnum.ADD.getValue();
        System.out.println("枚举中,数据增加的code值为:"+dataAddCode+",数据增加的value值为:"+dataAddValue);
        String dataDelCode = DataOpEnum.DEL.getCode();
        String dataDelValue = DataOpEnum.DEL.getValue();
        System.out.println("枚举中,数据删除的code值为:"+dataDelCode+",数据删除的value值为:"+dataDelValue);
    }
}

从测试中,我们可以发现,枚举跟map非常相似。但还有一些其他需要认识的扩展:

  1. 枚举类中的(code,value)是默认构造,也可以自定义自己需要的其他方式,例如下面这个:
/**
 * 枚举类
 */
@Getter
@AllArgsConstructor
public enum DataOpEnum {
    
    BANANA(1,"香蕉","yellow");
    ;
    
    DataOpEnum(int code, String name, String color) {
    }
}
  1. 枚举类属于强引用,并且不可被继承
  2. 很多小伙伴应该会有一些疑问,比如常量不就是枚举中默认构造的一种类似方式吗,那选择使用哪一个更合适呢,这里目前还是推荐枚举,具体的分析会在专栏中的另外一篇文章中写出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

拉结尔之书

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值