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();
}
(ちなみに、名前はより慣例的で読みやすいように変更しました。)
これは、コンストラクターで割り当てられた値が必要であることを前提としています。そうでない場合は、さらに情報を提供する必要があります。