? Stellt einen undefinierten Java-Typ dar.
T steht für den Java-Typ.
K V repräsentieren jeweils den Schlüsselwert im Java-Schlüsselwert.
E steht für Element.
Was ist der Unterschied zwischen Object und den durch diese Dinge dargestellten Java-Typen?
Objekt ist die Stammklasse aller Klassen und eine bestimmte Typumwandlung ist möglicherweise erforderlich, wenn Sie T verwenden. Wenn Sie darauf warten, wurde der Typ vor der tatsächlichen Verwendung bestimmt und es ist keine erzwungene Konvertierung erforderlich.
Der erste ist ein fester generischer Typ und der zweite ist eine Unterklasse der Object-Klasse. Mit anderen Worten, jede Klasse kann verwendet werden, da Object die Basisklasse aller Klassen ist 🎜>Fixed Der generische Typ bezieht sich auf einen festen Typ, wie zum Beispiel: Interge, String Is
erweitert Sammlung hier? Stellt einen unbekannten Typ dar.
Dieser unbekannte Typ ist jedoch tatsächlich eine Unterklasse von Collection und Collection ist die Obergrenze dieses Platzhalters.
Beispiel:
Klasse Test
aber es gibt viele Klassen, die die Sammlungsschnittstelle implementieren. Wenn Sie für jeden Typ einen bestimmten Unterklassentyp schreiben müssen, wäre dies zu mühsam. Es ist besser,
Object zu verwenden, um ihn universell zu machen.
erweitert Sammlung> Darunter ist ? ein unbekannter Typ und ein Platzhaltergenerikum. Dieser Typ muss nur die Sammlungsschnittstelle implementieren.
The method take(Animal) in the type Test is not applicable for the arguments (Demo<Dog>) The method take(Animal) in the type Test is not applicable for the arguments (Demo<Cat>) The method take(Animal) in the type Test is not applicable for the arguments (Demo<Animal>)
public class Demo <T extends Animal>{ private T ob; public T getOb() { return ob; } public void setOb(T ob) { this.ob = ob; } public Demo(T ob) { super(); this.ob = ob; } public void print(){ System.out.println("T的类型是:"+ob.getClass().getName()); } }
Das obige ist der detaillierte Inhalt vonDetaillierte Beispielcode-Erklärung des Unterschieds zwischen class