gpt4 book ai didi

java - 使用方法创建枚举值

转载 作者:行者123 更新时间:2023-11-29 06:55:15 25 4
gpt4 key购买 nike

我有一个枚举:公共(public)枚举 X 实现 Y

我也有课Ybuilder 可以创建 Y 的实例,假设使用 Ybuilder.create(int value)

如何将枚举中的枚举值设置为使用 Ybuilder 创建的 Y 的实例?理想情况下,它应该是一些简单的东西,比如

public enum X implements Y {
A (Ybuilder.create(0)),
B (Ybuilder.create(1)),
};

最佳答案

我认为您不能那样做 - 一种替代方法是委托(delegate)给构建器创建的 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; }
};

请注意,我使用 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; }
};

关于java - 使用方法创建枚举值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35707021/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com