簡體   English   中英

從Java中的枚舉獲取int值

[英]getting int value from enum in java

我有枚舉

enum Number{
  FIRST(123),
  SECOND(321);
}

Number nr=Number.FIRST

如何在不創建新方法的情況下從變量nr獲取枚舉值(不是String而是int)?

在Java中,枚舉也是對象。 提供要傳遞的數字的構造函數,以及一個公共實例變量; 不需要吸氣劑方法。

enum Num{
  FIRST(123),
  SECOND(321);
  public final int value;
  private Num(int value) { this.value = value; }
}

TL; DR:您不能。

長版:

您上面的代碼片段將無法編譯,因為您缺少構造函數:

private int value;

public Number(int i) {
    this.value = i;
}

完成此操作后,您將需要提供獲取value

public int getValue() {
    return this.value;
}

編輯:如果您確實真的不想創建新方法,則可以將value字段設為public ,但是您違反了OO封裝的概念(即最佳實踐)。

您需要這樣編寫枚舉(也請不要將其命名為Number !有java.lang.Number ):

enum MyNumber
{
    FIRST(123),
    SECOND(321);

    private final int number;

    MyNumber(final int number)
    {
        this.number = number;
    }

    public int getNumber()
    {
        return number;
    }
}

如果你不想要的訪問,刪除getter和做出number公開。

暫無
暫無

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

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