Java enum實現(xiàn)自增賦值方式
更新時間:2024年05月16日 09:46:12 作者:Ricardo于
這篇文章主要介紹了Java enum實現(xiàn)自增賦值方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
Java enum實現(xiàn)自增賦值
Java枚舉類型如何實現(xiàn)類似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變量實現(xiàn)任意自增:
import java.util.EnumSet;
public class EnumTest {
public static void main(String[] args) {
for (MSG_TYPE msg_type : EnumSet.allOf(MSG_TYPE.class))
{
System.out.println(msg_type.name() + " " +
msg_type.ordinal() + " " +
msg_type.getValue());
}
}
}
enum MSG_TYPE {
MSG_LOGIN(500),
MSG_LOGOUT,
MSG_REGISTER,
MSG_SEARCH,
MSG_ADD(600);
private int value;
private static int nextValue;
MSG_TYPE(){
this(Counter.nextValue);
}
MSG_TYPE(int value){
this.value = value;
Counter.nextValue = value + 1;
}
public int getValue()
{
return value;
}
private static class Counter
{
private static int nextValue = 0;
}
}enum類型自動賦值規(guī)則
#include<stdio.h>
enum {a, b, c, d=9, e}day1,day2;
int main()
{
int day;
day1=b;
day2=e;
day=day1+day2;
printf("%d\t",day);
return 0;
}
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Security框架:如何使用CorsFilter解決前端跨域請求問題
這篇文章主要介紹了Security框架:如何使用CorsFilter解決前端跨域請求問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11
教你如何把Eclipse創(chuàng)建的Web項目(非Maven)導入Idea
這篇文章主要介紹了教你如何把Eclipse創(chuàng)建的Web項目(非Maven)導入Idea,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-04-04
IntelliJ IDEA設置JVM運行參數(shù)的操作方法
這篇文章主要介紹了IntelliJ IDEA設置JVM運行參數(shù)的操作方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2018-03-03
Mybatis 中Mapper使用package方式配置報錯的解決方案
這篇文章主要介紹了Mybatis 中Mapper使用package方式配置報錯的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07

