资讯专栏INFORMATION COLUMN

Java枚举简介

yuanzhanghu / 1435人阅读

摘要:一枚举的用法定义一个枚举类,并在枚举类中列出需要使用的字段。在需要使用这个枚举属性时,直接使用即可。但有时候有点特殊的要求,比如在前后端协同时枚举要求转化成,在传输时减少字节。

一、 枚举的用法1

    定义一个枚举类,并在枚举类中列出需要使用的字段。
    
    public enum State {
        START,
        DOING,
        DONE
    }

    在需要使用这个枚举属性时,直接使用State.START即可。但有时候有点特殊的要求,比如在前后端协同时枚举要求转化成int,在传输时减少字节。这时候可以使用枚举类自带的一些API,这样做的好处可以使用枚举替代代码中一些常量数字。
    
    int enumIndex = 0;
    State state = State.values()[enumIndex];
    
    String enumString = "DOING";
    State state1 = State.valueOf(enumString);
    
    State state2 = State.DONE;
    System.out.println(state2.toString());
    System.out.println(state2.ordinal()); 
    

首先要说明的是如果采用上述方式使用枚举类,那枚举类中的每个实体对象(用词可能不准确)都有一个index,该index与其在枚举类中定义的位置有关,如上面的START的对应0.

values()方法会返回这个枚举类中所有定义的实体对象,然后我们可以根据实体对象对应的index取到这个实体对象并使用。

此外,还可以用valueOf()方法取到某个实体对象,当传入的String与定义的实体对象一致时,即可取到这个实体对象并加以使用

最后,枚举类中定义的实体对象,可以使用ordinal()获取到其对应的index,用toString()获取到它String格式数据。

二、枚举的用法2

public enum  Level {

    LOW(1, "low"),
    HIGH(2, "high");

    private int id;
    private String name;

    Level(int id, String name) {
        this.id = id;
        this.name = name;
    }

    public int getId() {
        return id;
    }

    public String getName() {
        return name;
    }
}

可以在枚举类中定义属性,这是在添加实体对象的时候需要根据构造函数的规则进行构造(可以添加多个构造函数),在使用枚举类的实体属性时就可以使用这些属性。

如有不正确的地方欢迎指正

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/70304.html

相关文章

  • 深入理解单例模式

    摘要:总结我们主要介绍到了以下几种方式实现单例模式饿汉方式线程安全懒汉式非线程安全和关键字线程安全版本懒汉式双重检查加锁版本枚举方式参考设计模式中文版第二版设计模式深入理解单例模式我是一个以架构师为年之内目标的小小白。 初遇设计模式在上个寒假,当时把每个设计模式过了一遍,对设计模式有了一个最初级的了解。这个学期借了几本设计模式的书籍看,听了老师的设计模式课,对设计模式算是有个更进一步的认识。...

    FuisonDesign 评论0 收藏0
  • Java 设计模式综合运用(门面+模版方法+责任链+策略+工厂方法)

    摘要:注解方式优点使用注解方式可以极大的减少使用模版方法模式带来的扩展时需要继承模版类的弊端,工厂注解的方式可以无需关心其他业务类的实现,而且减少了类膨胀的风险。 在上一篇文章Java设计模式综合运用(门面+模版方法+责任链+策略)中,笔者写了一篇门面模式、模版方法、责任链跟策略模式的综合运用的事例文章,但是后来笔者发现,在实现策略模式的实现上,发现了一个弊端:那就是如果在后续业务发展中,需...

    Yuanf 评论0 收藏0
  • JAVA笔记 - 收藏集 - 掘金

    摘要:动态代理个经纪人如何代理个明星掘金在代理模式女朋友这么漂亮,你缺经纪人吗中我们用宝强的例子介绍了静态代理模式的概念。掘金使用从头创建一个,这种方法比较简单。 动态代理:1 个经纪人如何代理 N 个明星 - Android - 掘金在 代理模式:女朋友这么漂亮,你缺经纪人吗? 中我们用宝强的例子介绍了静态代理模式的概念。 本来我的目的是通过大家耳熟能详的例子来加深理解,但是有些网友指责...

    kamushin233 评论0 收藏0
  • Java学习路线总结,搬砖工逆袭Java架构师(全网最强)

    摘要:哪吒社区技能树打卡打卡贴函数式接口简介领域优质创作者哪吒公众号作者架构师奋斗者扫描主页左侧二维码,加入群聊,一起学习一起进步欢迎点赞收藏留言前情提要无意间听到领导们的谈话,现在公司的现状是码农太多,但能独立带队的人太少,简而言之,不缺干 ? 哪吒社区Java技能树打卡 【打卡贴 day2...

    Scorpion 评论0 收藏0
  • 好文章必读 - 收藏集 - 掘金

    摘要:方法即为收集器,它接收高阶函数和的后端掘金年的第一天,我坐在独墅湖边,写下这篇文章。正因如此,所以最全系列教程后端掘金是从版本开始引入的一个新的,可以替代标准的。 设计模式之单例模式 - 掘金前言 作为一个好学习的程序开发者,应该会去学习优秀的开源框架,当然学习的过程中不免会去阅读源码,这也是一个优秀程序员的必备素养,在学习的过程中很多人会遇到的障碍,那就是设计模式。很多优秀的框架会运...

    FrozenMap 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<