Kann nicht von Liste <Liste> nach Liste <Liste <? >> konvertiert werden
Eine unformatierte Liste wird in @ konvertierList<?>
Alles gut. Warum kann eine Liste von unformatierten Listen nicht in eine Liste von @ konvertiert werdeList<?>
?
{ // 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;
}
Hintergrundgeschicht (mildern das xy Problem):
Eine API, die ich verwenList<JAXBElement>
. Ich weiß zufällig, dass es immerList<JAXBElement<String>>
. Ich plane eine Schleife und baue mein eigenesList<String>
, aber ich habe versucht, die Warnung des Rohtyp-Compilers zu beheben (aber nicht zu unterdrücken), wenn ich @ schreiList<JAXBElement> raw = api();
.
Ich habe es versucht
List<JAXBElement<?>> raw = api();
List<JAXBElement<?>> raw = (List<JAXBElement<?>>) api();
Aber diese geben den Typ Mismatch-Fehler.
Interessanterweise gibt dies keine Warnung oder Fehler:
for (JAXBElement<?> e : api()) {
// ...
}