Ich habe mir OJCPA-Code-Snippets angeschaut und ich bin verwirrt, warum der Compiler im folgenden Code keinen Fehler ausgibt.
%Vor%Ich dachte, dass der Compiler List l als einen unformatierten Typ sehen würde und da Generics invariant sind, würde es einen Compilerfehler erzeugen, da es nicht vom Typ List & lt; String & gt;.
Danke für Ihre Hilfe.
Es ist für Rückwärtskompatibilität erlaubt.
Angenommen, Sie rufen eine Legacy-Methode auf, die List
von String
s zurückgibt, aber sie wurde geschrieben, bevor Generics zu Java hinzugefügt wurden. Daher wird eine rohe List
zurückgegeben.
Sie möchten, dass diese Zeile die Kompilierung passiert:
%Vor% Andernfalls müssen Sie den rohen List
-Typ in Ihrem neuen Code verwenden, um diese Methode aufzurufen.