我有一个定义如下的类和函数:
public class Site {
public EnumSet<?> contents;
public void determineStates(Site a, Site b) {
this.contents.clear();
this.contents.addAll(a.contents);
this.contents.addAll(b.contents);
a.contents.removeAll(b.contents);
this.contents.removeAll(a.contents);
}
}
对于这两个 addAll 操作,Eclipse 都给我以下错误消息:
The method addAll(Collection<? extends capture#6-of ?>) in the type AbstractCollection<capture#6-of ?> is not applicable for the arguments (EnumSet<capture#7-of ?>)
本质上,我需要某种形式的Enum
泛型,而我只是对似乎存在的限制感到沮丧。我有许多Enum
不兼容的类型,但我想要一些可以容纳任何类型的容器。
我认识到在这段代码中无法确定a
,b
和contents
都是同一Enum
类型,但是在实际实现中这应该没有问题。
解决我的一般Enum
问题的任何想法和可能的方法都是有价值的,我将非常感谢您的帮助。提前致谢。