【发布时间】:2011-08-23 12:23:38
【问题描述】:
考虑这段代码:
public interface Foo extends Comparable<Foo> {}
public enum FooImpl implements Foo {}
由于类型擦除的限制,我收到以下错误:
java.lang.Comparable 不能用不同的参数继承:
<Foo>和<FooImpl>
我有以下要求:
-
FooImpl需要是一个枚举,因为我需要在注解中使用它作为默认值。 - 我的接口的约定是它需要具有可比性。
我已经尝试在接口中使用泛型边界,但 Java 不支持。
【问题讨论】:
-
试试
public interface Foopublic enum FooImpl implements Foo, Comparable<FooImpl> {...} -
问题是
FooImpl已经实现了Comparable<FooImpl>。 -
而您只是想证明它确实如此?写在评论中。
-
我需要能够将
Role的实例视为Comparable,此处的评论无济于事。 -
就在
public enum...上方,添加://Note: implements Comparable.
标签: java generics interface enums comparable