我有enum实现MyInterface。 使用该枚举制作其他类时,我想将enumClz约束为已实现MyInterface的类。约束的枚举类型实现一些接口的泛型类型
所以我在泛型类型声明中描述签名为“T extends Enum< T extends MyInterface>
”。
public <T extends Enum< T extends MyInterface>> C1(Class<T> enumClz) {
for (T anEnumConst : enumClz.getEnumConstants()) {
//....process
}
}
令我惊讶的是IDE在“T extends MyInterface
”中表示它是“意外的限制”。 我不知道这两个字的错误信息是什么意思,有关这个的任何解决方案?
顺便说一句,出于好奇,我有一个奇怪的问题,虽然不是很重要。 枚举类型T是否可以等效于以下无限循环
<T extends Enum< T extends Enum<T extends<....>>>>
?
@alfasin'extends'中通用范围使用时意思是 “是,或延伸,或工具”。 –