【发布时间】:2011-09-25 14:15:15
【问题描述】:
标题几乎解释了这个问题。我有一个接口方法:
Set<Field> getFieldSet()
我有一个类,User,看起来像这样
class User {
enum Fields implements Field {
USERNAME, PASSWORD;
...
}
...
}
现在我想实现User 的getFieldSet() 方法。天真的方式似乎只是return EnumSet.allOf(Fields.class),但我收到以下错误:
> Type mismatch: cannot convert from Set<User.Fields> to Set<Field>
除了手动将 EnumSet 复制到Set<Field> 之外,还有什么好的方法吗?
【问题讨论】:
-
你不能把它投给
Set<Field>吗? -
@Alex:不,这在 Java 中是不允许的。如果您可以这样做,那么它可能会导致问题,例如:
Set<Object> o = new HashSet<Integer>(); o.add("I'm not an integer");