1. Einführung in den Diamond Operator
2. Deklarationsbeispiel vor JDK 7
// Classe genérica com dois tipos class TwoGen<T, V> { T ob1; V ob2; TwoGen(T o1, V o2) { ob1 = o1; ob2 = o2; } } // Criação de uma instância antes do JDK 7 TwoGen<Integer, String> tgOb = new TwoGen<Integer, String>(42, "testing");
Nachteil: Generische Typen müssen sowohl bei der Deklaration als auch bei der Instanzerstellung wiederholt werden.
. Verwendung des Rhombus-Operators in JDK 7
// Criação de uma instância usando o operador losango TwoGen<Integer, String> tgOb = new TwoGen<>(42, "testing");
Der Betreiber <> fordert den Compiler auf, die Typargumente basierend auf der Variablendeklaration (TwoGen) abzuleiten.
4. Allgemeines Formular
Allgemeine Syntax zum Erstellen einer Instanz einer generischen Klasse:
nome-classe<lista-arg-tipo> nome-var = new nome-classe<>(lista-arg-cons);
Beispiel:
TwoGen<Double, Boolean> example = new TwoGen<>(3.14, true);
5. Inferenz in Methoden
Typinferenz funktioniert auch für Methoden, die generische Klassen als Parameter verwenden.
Beispiel:
// Adicionado à classe TwoGen boolean isSame(TwoGen<T, V> o) { return ob1 == o.ob1 && ob2 == o.ob2; } // Chamando o método usando o operador losango if (tgOb.isSame(new TwoGen<>(42, "testing"))) { System.out.println("Same"); }
Die Typen des neuen TwoGen<>(...)-Parameters werden automatisch abgeleitet.
6. Vorteile des Losango-Betreibers
Ausführlichkeit reduzieren: Besonders nützlich für generische Klassen mit vielen Typparametern.
Lesbarkeit: Vereinfacht komplexe Aussagen.
7. Kompatibilität
Der Diamantoperator funktioniert nicht in Java-Versionen vor JDK 7.
Beispiele in alten Büchern und Codes verwenden die vollständige Syntax, um die Kompatibilität mit allen Java-Compilern aufrechtzuerhalten, die Generika unterstützen.
8. Gute Praktiken
Verwenden Sie den Diamantoperator in Projekten mit JDK 7-Unterstützung, um den Code zu optimieren und besser lesbar zu machen.
Bevorzugen Sie aus Gründen der Übersichtlichkeit die vollständige Syntax in Lernbeispielen oder Legacy-Projekten.
Das obige ist der detaillierte Inhalt vonTypinferenz mit dem Diamond-Operator. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!