1. ホーム

[解決済み】enumの値をintに変換する方法は?

2022-04-03 14:43:30

質問

int型を返す関数があります。しかし、私はTAX列挙型の値しか持っていません。

TAX列挙値をint型にキャストするにはどうすればよいですか?

public enum TAX {
    NOTAX(0),SALESTAX(10),IMPORTEDTAX(5);

    private int value;
    private TAX(int value){
        this.value = value;
    }
}

TAX var = TAX.NOTAX; // This value will differ

public int getTaxValue()
{
  // what do do here?
  // return (int)var;
}

解決方法は?

enumを公開する必要があります。 value をどうにかして、例えば

public enum Tax {
    NONE(0), SALES(10), IMPORT(5);

    private final int value;
    private Tax(int value) {
        this.value = value;
    }

    public int getValue() {
        return value;
    }
}

...

public int getTaxValue() {
    Tax tax = Tax.NONE; // Or whatever
    return tax.getValue();
}

(もう少しオーソドックスで読みやすい名前に変更しました(笑))

これは 想定 は、コンストラクタで値を代入することを望んでいます。もし、そうでない場合は、もっと詳しい情報を教えてください。