【发布时间】:2020-10-29 16:52:20
【问题描述】:
我有如下界面:
public interface GenericMethods {
public String getString();
}
通过这个接口,我实现了这个枚举:
public enum SpecificEnum implements GenericMethods {
A("NOT"), B("RELATED"), C("TEXT");
SpecificEnum(String string) {
this.string = string;
}
private String string;
@Override
public String getString() {
return this.string;
}
}
现在,我希望能够调用带有参数SpecificEnum.class 的函数,并能够在该参数上调用values() 函数,以及返回数组元素的接口方法。像这样的:
class Main {
public static void main(String[] args) {
for (GenericMethods gm : getEnums(SpecificEnum.class)) {
System.out.printf(gm.getString());
}
}
public static T[]<T extends GenericMethods> getEnums(Class<T> enum1) {
enum1.values();
}
}
但是,经过大量搜索,我还没有遇到过使用泛型和枚举同时实现接口的案例。我也对泛型类型进行了很多思考,但我找不到能够在泛型枚举类上调用 values() 的正确语法。主要目标是以相同的方式管理多个相关的枚举。
【问题讨论】:
标签: java generics enums interface