Не удается преобразовать из списка <List> в список <List <? >>

Необработанный список преобразуется вList<?> просто хорошо. Почему список необработанных списков нельзя преобразовать в списокList<?>?

{   // works
    List raw = null;
    List<?> wild = raw;
}
{   // Type mismatch: cannot convert from List<List> to List<List<?>>
    List<List> raw = null;
    List<List<?>> wild = raw;
}

Предыстория (чтобы смягчитьпроблема ху):

API, который я использую, возвращаетList<JAXBElement>, Я знаю, что это всегдаList<JAXBElement<String>>, Я планирую зациклить и построить свой собственныйList<String>, но я пытался исправить (но не подавить) предупреждение компилятора необработанного типа, когда я пишуList<JAXBElement> raw = api();.

Я старался:

List<JAXBElement<?>> raw = api();
List<JAXBElement<?>> raw = (List<JAXBElement<?>>) api();

но они дают ошибку несоответствия типов.

Интересно, что это не дает предупреждения или ошибки:

for (JAXBElement<?> e : api()) {
    // ...
}

Ответы на вопрос(3)

Ваш ответ на вопрос