Liste ist selbst ein Typ. Es wird also keinen Unterschied geben, wenn Sie den Typ darin ändern.
Vielleicht weil %code% ein unformatierter Typ ist und %code% nicht. Rohtypen sind möglicherweise sehr gefährlich, weil sie viele seltsame Nebenwirkungen haben können.
Ich werde eine Referenz veröffentlichen, sobald ich sie finden kann.
" %code% ist kein verifizierbarer Typ" ist nicht der beste Weg zu formulieren, warum %code% nicht kompiliert wird.
Der Operator %code% überprüft den Typ Ihres Objekts zur Laufzeit.
Daher verhindert type-Löschung , dass Java seinen parametrisierten Typ (den Typ) nicht kennt zwischen dem %code% ).
Ein roher %code% (entspricht einem %code% ) oder ein %code% (dh ein %code% eines unbekannten Typs) bedeutet also hier praktisch dasselbe, obwohl normalerweise von der rohen Syntax abgeraten wird (hier für kosmetische Gründe).
Ich weiß, dass wir %code% nicht aufrufen können, weil %code% kein umformbarer Typ ist. Sowohl %code% als auch %code% arbeiten; Allerdings schlägt die Eclipse-IDE vor, %code% zu verwenden.
Ich frage mich, warum es ungebundene Wildcard %code% anstelle von roher Aufruf %code% vorschlägt. Hat der ungebundene Platzhalter %code% einen Vorteil gegenüber dem rohen Aufruf %code% ?
Vielen Dank im Voraus.
Edit 1 : %code% und %code% sind identisch mit dem Compiler, der den Typ beim Kompilieren löscht. Aber neben dem kosmetischen Grund, wie Mena darauf hinweist, hat es einen anderen Grund, %code% zugunsten von %code% zu benutzen?
2 bearbeiten : Nach diesem Eintrag von Oracle:
- Der Typ eines instanceof / cast-Ausdrucks ist roh
Dies passiert sehr häufig, da javac instanceof Ausdrücke verbietet wessen Zieltyp ein generischer Typ ist; Für Umwandlungen ist der Compiler etwas permissiver, da Abgüsse zum generischen Typ erlaubt sind, aber a Warnung wird ausgegeben (siehe oben). Wie auch immer, der rohe Typ sollte ersetzt werden durch eine unbegrenzte Wildcard, da sie ähnliche Eigenschaften w.r.t. Subtyping.
%code% %Code% %code%
Somit können wir folgern, dass neben dem kosmetischen Grund, wie Mena sagte, und der Beschränkung, Genetik zu verwenden, %code% und %code% gleich sind.