dwj*_*ton 0 java enums constructor arguments
我想做这样的事情:
public class MyEnumTest {
public enum MyEnum;
private MyEnum value;
public MyEnumTest(enum e)
{
this.MyEnum = e;
this.value = this.MyEnum.values[0]//Set value to the first enum value.
}
public void setValue(MyEnum e)
{
this.value = e;
}
public MyEnum getValue()
{
return value;
}
}
Run Code Online (Sandbox Code Playgroud)
并称之为:
MyEnumTest car = new MyEnumTest({HONDA, FORD, TOYOTA, HOLDEN});
MyEnumTest fruit = new MyEnumTest({APPLE, BANANA, CHERRY});
/* some operations occur*/
if (car.getValue() == car.FORD) System.out.println("Vrooom!");
if (fruit.getValue()) == fruit.APPLE) System.out.println ("Is red and round and delicious");
Run Code Online (Sandbox Code Playgroud)
这样做的任何想法?
对于奖励标记 - 是否可以使用枚举值设置初始值?例如
MyEnumTest myET = new myEnumTest(new enum {RED, GREEN, BLUE, YELLOW}, BLUE);
Run Code Online (Sandbox Code Playgroud)
你可以使用(没有enum关键字):
public MyEnumTest(MyEnum e)
{
this.myEnum = e;
this.value = MyEnum.values()[0];
}
Run Code Online (Sandbox Code Playgroud)
对于第2部分,您可以定义重载的构造函数:
public MyEnumTest(MyEnum[] myEnums) {
Run Code Online (Sandbox Code Playgroud)
并使用:
MyEnumTest myET = new MyEnumTest(new MyEnum[] { MyEnum.FOO, ... });
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8654 次 |
| 最近记录: |