? 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 107a2b0643f75c159b383621c1e2b8c2
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 107a2b0643f75c159b383621c1e2b8c2 🎜>
8fbe73b1d3bf2c4ea71dc5e93aecb028 Unter diesen ist T ein bestimmter Typ (spezifischer Typ), wenn eine solche Instanz erstellt wird. Dieser Typ implementiert die Sammlungsschnittstelle,
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.
493d6ca4e9b997f3d427a32d5ea99ced 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 5ad81ab85c1e7d5abd1bd5c95f1521b6{ 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