鉴于以下设置:Java泛型枚举子类型接口
public class TestType {
public static void main(String[] args) {
List<Constants> list = new ArrayList<>();
accept(list); //Does not compile
}
static void accept(Iterable<MyInterface> values) {
for (MyInterface value : values) {
value.doStuff();
}
}
}
interface MyInterface<T> {
T doStuff();
}
enum Constants implements MyInterface<Integer> {
ONE, TWO, THREE;
@Override
public Integer doStuff() {
return ordinal();
}
}
为什么不编译器接受列表作为参数来接受()?
List
延伸Iterable
通过Collection
所以这不是问题。
在另一方面,编译器告诉我, incompatible types: java.util.List<enums.Constants> cannot be converted to java.lang.Iterable<enums.MyInterface>
但常量是一个MyInterface的......不是吗?
这确实有效。只要让我来接受答案。非常感谢! – tannerli