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

Typinferenz mit dem Diamond-Operator

Susan Sarandon
Susan SarandonOriginal
2024-12-31 13:11:14219Durchsuche

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

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!

Stellungnahme:
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