Obere und untere Schranken verstehen? in Java Generics

Es fällt mir wirklich schwer, den Platzhalterparameter zu verstehen. Ich habe ein paar Fragen dazu.

? als Typparameter kann nur in Methoden verwendet werden. z.B:printAll(MyList<? extends Serializable>) Ich kann keine Klassen mit definieren? als Typparameter.

Ich verstehe die Obergrenze an?. printAll(MyList<? extends Serializable>) meint: "printAll wird gedrucktMyList wenn es Objekte hat, die das implementierenSerialzable Schnittstelle."
Ich habe ein kleines Problem mit demsuper. printAll(MyList<? super MyClass>) meint: "printAll wird gedrucktMyList wenn es Gegenstände vonMyClass oder jede Klasse, die sich erstrecktMyClass (die Nachkommen vonMyClass)."

Korrigiere mich, wo ich falsch gelaufen bin.

Kurz gesagt, nurT oderE oderK oderV oderN kann als Typparameter zum Definieren generischer Klassen verwendet werden.? kann nur in Methoden verwendet werden

Update 1:

public void printAll(MyList<? super MyClass>){
    // code code code
}

Übereinstimmung mit Ivor Hortons Buch,MyList<? super MyClass> bedeutet, dass ich drucken kannMyList wenn es Gegenstände vonMyClass oder eine der von ihr implementierten Schnittstellen oder Klassen. Das ist,MyClass ist einUntergrenze. Es ist die letzte Klasse in der Vererbungshierarchie. Dies bedeutet, dass meine ursprüngliche Annahme falsch war.

Also, sag obMyClass sieht aus wie:

public class MyClass extends Thread implements ActionListener{
    // whatever
}

dann,printAll() druckt wenn
1. Es gibt Objekte vonMyClass In der Liste
2. Es gibt Objekte vonThread oderActionListener in demList

Update 2:

Nachdem ich die vielen Antworten auf die Frage gelesen habe, habe ich folgendes Verständnis:

? extends T meintjede Klasse, die sich erstrecktT. Wir beziehen uns also auf dieKinder vonT. Daher,T ist die Obergrenze. Die oberste Klasse in der Vererbungshierarchie

? super T meintjede Klasse / Schnittstelle, die istsuper vonT. Damit meinen wir alleEltern vonT. T ist also die Untergrenze. Die unterste Klasse in der Vererbungshierarchie

Antworten auf die Frage(4)

Ihre Antwort auf die Frage