Mar*_*son 5 java enums constructor
我有一个枚举,想在构造函数中使用静态值作为参数。
public enum Enum
{
e1(0),
e2(1),
e3(SPECIAL_VALUE);
static int SPECIAL_VALUE = -1;
int value;
private Enum(int value)
{
this.value = value;
}
}
Run Code Online (Sandbox Code Playgroud)
在此示例中,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());
}
}
Run Code Online (Sandbox Code Playgroud)
第一次尝试ideone,瞧!http://ideone.com/Bz1N69
| 归档时间: |
|
| 查看次数: |
359 次 |
| 最近记录: |