enum 値を int に変換するにはどうすればいいですか? 質問する

enum 値を int に変換するにはどうすればいいですか? 質問する

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;
}

ベストアンサー1

何らかの方法で列挙型を公開する必要があります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();
}

(ちなみに、名前はより慣例的で読みやすいように変更しました。)

これは、コンストラクターで割り当てられた値が必要であることを前提としています。そうでない場合は、さらに情報を提供する必要があります。

おすすめ記事