gpt4 book ai didi

java - 创建抽象枚举的方法

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:45:44 27 4
gpt4 key购买 nike

我有一些枚举,它有 getDescription() 方法:

public enum Test {
QWE ("qwe"),
ASD ("asd"),
ZXC ("zxc");

private final String description;

Test(String description) {
this.description = description;
}

public String getDescription() {
return description;
}
}

public enum Test1 {
RTY("rty");

private final String description;

Test1(String description) {
this.description = description;
}

public String getDescription() {
return description;
}
}

是否可以创建一些抽象的枚举或一些接口(interface),可以这样写?

public void outputDescriptions(AbstractEnumType abstractEnumType) {
for(Enum enum: abstractEnumType.values()) {
System.out.println(enum.getDescription());
}
}

outputDescriptions(Test) 的输出

qwe
asd
zxc

最佳答案

您不能从抽象基类派生枚举,但枚举可以实现接口(interface)。以下将是您的问题的解决方案:

您创建一个接口(interface) Descriptable

 public interface Descriptable {
public String getDescription();
}

并让你所有的枚举实现这个接口(interface):

 public enum Test implements Descriptable {

然后像这样写输出函数:

public <T extends Enum<T> & Descriptable> void outputDescriptions(Class<T> tclass) {
for(T t: tclass.getEnumConstants())
System.out.println(t.getDescription());
}

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

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