簡體   English   中英

如何將具有分配值的枚舉從C移植到Java?

[英]How to port enums with assigned values from C to Java?

我試圖將一個非常簡單的應用程序從C移植到Java。 不幸的是,我之前在枚舉方面工作不多,因此以下代碼使我感到困惑:

typedef enum {
    LT = 0,
    LTE = 1,
    E = 2,
    GTE = 3,
    GT = 4
} S;

根據我的理解,數字是代表每個枚舉的值。

我該如何在Java中做同樣的事情?

我應該采取這種方法嗎

private enum S{
    LT,
    LTE,
    E,
    GTE,
    GT
}

要么

這種方法?

private enum S{
    LT(0),
    LTE(1),
    E(2),
    GTE(3),
    GT(4);      

    private int code; 

    S(int code) {
        this.code = code;
    } 
    public int getCode() {
        return code;
    }
}

如果Java中的枚舉已經從0開始,那么添加第二種方法將有點多余。 我很困惑...

您應該采用第一種方法。 Java中的enum常量的偉大之處在於它們不是 int值,因此您無需以這種方式為其分配值。

如果出於某種原因您需要了解enum常量的索引(而且這種情況很少見),則可以執行LT.ordinal()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM