次のように定義されたクラスと関数があります。
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
問題に対処するための考えや可能な方法は貴重であり、あなたの助けに非常に感謝しています. 前もって感謝します。