java Enum枚举白话讲解

看到这个代码是不是有点懵逼,或者好像之前看书学过又好像没用学过。

enum SubmitStateEnum {

    //0:报送成功、1:报送中 、2::未报送 3: 生成报文错误
    SUCCESS("0"),SUBMITING("1"),NOTSUBMIT("2"), FAILURE("3");
    String submitStateType;

    SubmitStateEnum(String submitStateType){
        this.submitStateType=submitStateType;
    }
    public String getSubmitStateType() {
        return submitStateType;
    }

}

首先,
1.这是枚举。
2.这是公司常用格式
3.是java的语法糖
4.编译后会变成普通的类
5.看源码理解起来比较反人类

在这里插入图片描述
在这里插入图片描述
哈哈哈,懵了吧。
先上一段代码:

class TestEnum{
    static TestEnum Spring = new TestEnum("SPRING");
    private String season;
    public TestEnum() {
    }
    public TestEnum(String season) {
        this.season = season;
    }
    @Override
    public String toString() {
        return "TestEnum{" +
                "season='" + season + '\'' +
                '}';
    }
}

在这里插入图片描述
在这里插入图片描述
咦~是不是有点小懂,今天比较忙先看着
下面是较完整版

class Seanson3 {

    private Seanson3(String s) {
        m_ordinal = m_nextOrdinal++;
        m_name = s;
    }

    public String toString() {
        return m_name;
    }

    public String Name() {
        return m_name;
    }

    public int compareTo(Object obj) {
        return m_ordinal - ((Seanson3) obj).m_ordinal;
    }

    public static Seanson3[] values() {
        return m_seasons;
    }

    public static Seanson3 valueOf(String s) {
        for (Seanson3 m_season : m_seasons)
            if (m_season.Name().equals(s))
                return m_season;
        throw new IllegalArgumentException(s);
    }

    private final String m_name;
    private static int m_nextOrdinal = 0;

    private final int m_ordinal;
    public static final Seanson3 SPRING;
    public static final Seanson3 SUMMER;
    public static final Seanson3 FALL;
    public static final Seanson3 WINTER;
    private static final Seanson3 m_seasons[];

    static {
        SPRING = new Seanson3("Spring");
        SUMMER = new Seanson3("Summer");
        FALL = new Seanson3("Fall");
        WINTER = new Seanson3("Winter");
        m_seasons = (new Seanson3[] { SPRING, SUMMER, FALL, WINTER });
    }
}

自己沾过去运行一下,绝对都懂差不多了,java这个语法糖非常不友好,比较反人类的理解,绝大部分的操作java都给你隐藏掉了。但是理解后在一定程度上解决了我们的麻烦,大家理解万岁。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

IT_Octopus

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

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

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

打赏作者

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

抵扣说明:

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

余额充值