我有一个枚举并且想使用一个静态值作为构造函数中的参数。
public enum Enum
{
e1(0),
e2(1),
e3(SPECIAL_VALUE);
static int SPECIAL_VALUE = -1;
int value;
private Enum(int value)
{
this.value = value;
}
}
在这个例子中,SPECIAL_VALUE
在初始化之前被访问,所以这显然是行不通的。我想知道是否有一个共同的解决方案。或者我不需要这样做的原因。
注意:某处可能有重复项,但我能找到的所有内容都与在构造函数主体中使用静态字段有关,而不是作为参数,而且我认为那里提供的解决方案不适用.
最佳答案
package test;
public enum Enum
{
e1(0),
e2(1),
e3(SPECIAL_VALUE());
static int SPECIAL_VALUE(){return -1;}
int value;
private Enum(int value)
{
this.value = value;
}
public int getValue()
{
return value;
}
public static void main(String args[])
{
System.out.println(e3.name());
System.out.println(e3.getValue());
}
}
第一次尝试ideone,瞧! http://ideone.com/Bz1N69
关于java - 使用枚举中定义的静态字段作为构造函数中的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25331328/