看到这个代码是不是有点懵逼,或者好像之前看书学过又好像没用学过。
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都给你隐藏掉了。但是理解后在一定程度上解决了我们的麻烦,大家理解万岁。