私は別の外国のクラス(私によって制御されていない)で動作する抽象ツールクラスを作成しています。外部クラスは、インタフェースのある点では概念的には似ていますが、類似のプロパティにアクセスするための構文は異なります。また、ツールの操作の結果を適用するための構文も異なります。 this answer by @hotkeyに基づいて、内部クラスを持つデータクラスを作成しました。 ここにジェネリックスの問題
List<? super Number> myNumsContra = new ArrayList<Number>();
myNumsContra.add(2.0F);
myNumsContra.add(2);
myNumsContra.add(2L);
System.out.println(myNumsContra.get(0)); //should t
私は決してJavaのジェネリックスを理解していないので、コトリンの場合と思われます。私が正しくin修飾子のみによって消費されるTを示して理解していれば、 Type mismatch.
Required: kotlin.Comparator<in T>
Found: AnyComparator
今 class AnyComparator: Comparator<Any> {
ove
私は、Contravarianceを使用するときに、以下に何か作用して苦労しています。私の理解は、共分散は基本型から派生型を返すことができるところです。 Contravarianceは、基本型の派生型を引数としてクラスに渡すことができる場所です。 だから私は、以下のインターフェース(反変)持っている:ジェネリック型を考慮し public interface IBase<in T> where T: