我有一个返回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;
}
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 333
你需要以value某种方式使enum暴露,例如
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();
}
Run Code Online (Sandbox Code Playgroud)
(我已将名称更改为更传统和可读,顺便说一下.)
这假设您需要在构造函数中指定的值.如果这不是您想要的,您需要向我们提供更多信息.
小智 197
我更喜欢这个:
public enum Color {
White,
Green,
Blue,
Purple,
Orange,
Red
}
Run Code Online (Sandbox Code Playgroud)
然后:
//cast enum to int
int color = Color.Blue.ordinal();
Run Code Online (Sandbox Code Playgroud)
unh*_*ler 18
如果需要在构造函数中指定的值,则需要在枚举定义中添加一个方法以返回该值.
如果您想要一个代表枚举值的唯一数字,您可以使用ordinal().
小智 12
有时候一些C#方法会让Java世界的生活变得更轻松..:
class XLINK {
static final short PAYLOAD = 102, ACK = 103, PAYLOAD_AND_ACK = 104;
}
//Now is trivial to use it like a C# enum:
int rcv = XLINK.ACK;
Run Code Online (Sandbox Code Playgroud)