Heim > Java > javaLernprogramm > Typinferenz mit dem Diamond-Operator

Typinferenz mit dem Diamond-Operator

Susan Sarandon
Freigeben: 2024-12-31 13:11:14
Original
207 Leute haben es durchsucht

Inferência de Tipos com o Operador Losango

1. Einführung in den Diamond Operator

  • Eingeführt in JDK 7, um die Ausführlichkeit beim Erstellen von Instanzen generischer Klassen zu reduzieren.
  • Ermöglicht dem Compiler, generische Typen aus dem Kontext abzuleiten, wodurch die Notwendigkeit entfällt, Typargumente zu wiederholen.

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");

Nach dem Login kopieren

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");

Nach dem Login kopieren

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);

Nach dem Login kopieren

Beispiel:

TwoGen<Double, Boolean> example = new TwoGen<>(3.14, true);
Nach dem Login kopieren

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");
}

Nach dem Login kopieren

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!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage