Я думал, что понял это, но, очевидно, нет ...
У меня есть подпись метода, например, так:
void doSomething(List<TypeA> typeAs){...}
List<TypeA<TypeB>> getTypeBTypeAs(){...}
но если я попытаюсь позвонить
doSomething(getTypeBTypeAs());
Я получаю ошибку компиляции: «метод doSomething (List) в типе ... не применим для аргументов (List>)»
однако, если я изменю сигнал doSomething
на
void doSomething(List<TypeA<?>> typeAs){...}
это все еще не работает, но
void doSomething(List typeAs){...}
очевидно, что это работает, как я обойти дженерики.
что странно.
Может кто-нибудь заполнить меня?
Кроме того, в этом случае я бы хотел, чтобы doSomething
работал с любым списком, содержащим TypeAs любого универсального типа; undefined, TypeB, TypeC и т. д.
спасибо.