Может ли кто-нибудь помочь с синтаксисом подкласса непараметризированного вложенного класса внутри параметризованного внешнего класса, например, следующим образом?Переопределение непараметризированных классов, вложенных в параметризованный внешний класс в Java
public abstract class Foo<T> {
public class Bar {
Set<T> aSet;
}
abstract class Baz {
abstract void doSomething(Map<? extends Bar, T> aMap);
}
}
Затем в отдельном файле, я не совсем уверен, как определить тип переменной S
здесь без параметрирования ConcreteBaz
. И я не могу использовать подстановочные переменную как extends Foo<?>.Baz
(я думаю), потому что мне нужен доступ к этой общей переменной типа в методе doSomething
:
public class ConcreteBaz extends Foo<S>.Baz { // compilation error
public ConcreteBaz(Foo<S> foo) { foo.super(); }
public void doSomething(Map<? extends Foo<S>.Bar, S> aMap) { ... }
}
Может кто-то пожалуйста, помогите мне понять, как обойти это? Благодарю.
Вы можете поставить экземпляр для ограждающих 'Foo' конструктору см мой пример (я пробовал в IDE). – Jesper
Вы пробовали то, что вы объясняете, как невозможное? – Irfy
@Jesper: Упс, спасибо. Я удалил эту часть своего ответа. – ruakh