Was ist mit der linken Grenze für den generischen Typ oder eine Methode gemeint und warum wurde diese Richtlinie für die Typlöschung gewählt? [Duplikat]

8

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?

    
Geek 08.03.2013, 14:24
quelle

2 Antworten

9

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%     
JLRishe 08.03.2013, 14:31
quelle
2

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.

    
irreputable 08.03.2013 16:42
quelle

Tags und Links