У меня есть три класса:
class ClassR {}
class ClassA<T extends ClassR>{}
class ClassB<E extends ClassA<T extends ClassR>> extends ClassA<T> {
void foo(T param) {
}
void bar(E param) {
}
}
Третий класс не компилируется, если я не изменю его на
class ClassB<E extends ClassA<T>, T extends ClassR> extends ClassA<T> {
void foo(T bar) {
}
void bar(E param) {
}
}
Есть ли способ сохранить только параметр E, который мне нужно передать при создании ClassB, а T - вывод? Например, было бы удобно использовать:
new ClassB<ClassA<ClassR>>()
вместо:
new ClassB<ClassA<ClassR>, ClassR>()