Java枚举类型如何实现类似C++的自增赋值?
在C++中可以这么写:
enum MSG_TYPE {
MSG_LOGIN = 500,
MSG_LOGOUT,
MSG_REGISTER,
MSG_SEARCH,
/* ... */
};
但是在Java中就必须写一大坨,必须依次给每个枚举常量赋值,例如下面代码
public enum MSG_TYPE{
MSG_LOGIN(500),
MSG_LOGOUT(501),
MSG_REGISTER(502),
MSG_SEARCH(503),
/* ... */
MSG_ADD(600);
private int egId;
private MSG_TYPE(int val){
this.egId = val
}
public getEgId(){
return this.egId;
}
}
大家有没有什么好的替代办法?
java中enum并没那么智能,是从0开始自增的。可以维护一个static变量实现任意自增:
结果: