サブクラスに問題があり、関数の「メソッド」をジェネリックにしようとしています。以下を参照してください。タイプ B1 と B2 のオブジェクトをそれぞれ使用するためにクラス C1 と C2 を実装する際に問題があります。
編集: 明確でない場合は申し訳ありませんが、基本的に関数メソッドをオーバーライドしようとしていますが、パラメーターをジェネリックにする必要があるため、C のサブクラスであるクラス C1 では B1 をパラメーターとして使用し、C2 ではパラメーターとして使用する必要があります。は C1 のサブクラスであり、B2 をパラメーターとして使用する必要があります。
コードは私が達成しようとしている動作ですが、コンパイルするのに苦労しています。
ここに私のクラスがあります
class A{}
class T1{}
class V1{}
abstract class B<T extends T1, V extends V1>{}
class B1 extends B<SomeChildOfT1, SomeChildOfV1>{}
class B2 extends B1{}
abstract class C <E extends B<? extends T1, ? extends T2>> extends A
{
void method(E)
{//bla}
}
class C1<E extends B1> extends C<B1>
{
//method with object B1 as parameter
@override
void method(E){
//bla
}
}
class C2 extends C2<B2>
{
@override
void method(B2)
{
}
}