Von Angelika Langers generische FAQ :
Eliding-Typ-Parameter.
Wenn der Compiler die Definition eines generischen Typs oder einer generischen Methode findet entfernt alle Vorkommnisse der Typparameter und ersetzt sie durch ihre linke Grenze, oder geben Sie Objekt ein, wenn keine Grenze angegeben wurde.
Edit: Wie ich in diesem Fall verstanden habe linkeste Grenze bedeutet, was es bedeutet buchstäblich, d.h. am weitesten links in der Liste der Grenzen. Ich möchte verstehen, warum diese Politik gewählt wurde?
In diesem Fall ist "ganz links" keine technische Terminologie. Es bedeutet wörtlich "am weitesten nach links". Es bedeutet einfach, dass, wenn der Typparameter mehrere Grenzen (Einschränkungen) wie folgt hat:
%Vor% Der Compiler ersetzt alle Vorkommen des Typs parameter T
mit der Grenze, die am weitesten links ist (in diesem Fall ist das Callable<Long>
):
Das heißt, wie in Angelikas Beispiel:
%Vor%wird durch Folgendes ersetzt:
%Vor%Es gibt keinen Grund. Sie müssen nur eins auswählen. Die ganze Sache ist scheiße. Es ist wie wenn du fragst, welches deiner Kinder du retten willst. Du willst alles retten, duh. Aber sie lassen dich nicht.