我有一个枚举:
public enum X implements Y
我也有一个类
Ybuilder可以创建实例Y,比方说Ybuilder.create(int value)
如何将枚举中的枚举值设置为Y创建的实例Ybuilder?理想情况下,这将是一个简单的事情
public enum X implements Y {
A (Ybuilder.create(0)),
B (Ybuilder.create(1)),
};
Run Code Online (Sandbox Code Playgroud)
我不认为你可以这样做 - 一种替代方法是委托给构建器创建的Y实例.例如:
interface Y { //Assume Y has two methods
void m1();
void m2();
}
public enum X implements Y {
A (0),
B (1);
private final Y y;
X(int value) { this.y = YBuilder.create(value); }
//Then delegate to y to implement the Y interface
public void m1() { y.m1(); return; }
public void m2() { y.m2(); return; }
};
Run Code Online (Sandbox Code Playgroud)
请注意,我使用int参数创建了枚举,但Y如果您愿意,可以直接传递:
public enum X implements Y {
A (Ybuilder.create(0)),
B (Ybuilder.create(1));
private final Y y;
X(Y y) { this.y = y; }
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
59 次 |
| 最近记录: |