このタイプの変換が正しく機能することに問題があります。私の推測は、包括的なワイルドカード<ですか? super SomeType >は、インターフェイス実装では動作しません。制限付きのワイルドカードで型の不一致がありますか? super Type
// sample class definitions
public interface IFace<T> { ... }
public class MyClass<T1, T2> { ... }
public class UtilityClass<T> {
public List<MyClass<T, ? super IFace<T>>> getList() { ... }
}
public class Actor extends SomeObj implements IFace<TypeA> { ... }
// use...
UtilityClass<TypeA> utility = new UtilityClass<TypeA>();
List<MyClass<TypeA, Actor>> list = utility.getList();
Type mismatch: cannot convert from List<MyClass<TypeA, ? super IFace<TypeA>> to List<MyClass<TypeA, Actor>>
ありがとうございます。数分後に私の答えを取り除きます。 –