Maison > Java > javaDidacticiel > Inférence de type avec l'opérateur Diamond

Inférence de type avec l'opérateur Diamond

Susan Sarandon
Libérer: 2024-12-31 13:11:14
original
208 Les gens l'ont consulté

Inferência de Tipos com o Operador Losango

1. Introduction à l'opérateur diamant

  • Introduit dans JDK 7 pour réduire la verbosité lors de la création d'instances de classes génériques.
  • Permet au compilateur de déduire des types génériques à partir du contexte, éliminant ainsi le besoin de répéter les arguments de type.

2. Exemple de déclaration avant 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");

Copier après la connexion

Inconvénient : Les types génériques doivent être répétés à la fois dans la déclaration et dans la création d'instance.

. Utilisation de l'opérateur Rhombus dans JDK 7

// Criação de uma instância usando o operador losango
TwoGen<Integer, String> tgOb = new TwoGen<>(42, "testing");

Copier après la connexion

L'opérateur <> demande au compilateur de déduire les arguments de type en fonction de la déclaration de variable (TwoGen).

4. Formulaire général
Syntaxe générale pour créer une instance d'une classe générique :

nome-classe<lista-arg-tipo> nome-var = new nome-classe<>(lista-arg-cons);

Copier après la connexion

Exemple :

TwoGen<Double, Boolean> example = new TwoGen<>(3.14, true);
Copier après la connexion

5. Inférence dans les méthodes
L'inférence de type fonctionne également pour les méthodes qui prennent des classes génériques comme paramètre.
Exemple :

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

Copier après la connexion

Les types du nouveau paramètre TwoGen<>(...) sont automatiquement déduits.

6. Avantages de l'opérateur Losango
Réduire la verbosité : particulièrement utile pour les classes génériques avec de nombreux paramètres de type.
Lisibilité : simplifie les déclarations complexes.

7. Compatibilité
L'opérateur diamant ne fonctionne pas dans les versions Java antérieures à JDK 7.
Les exemples d'anciens livres et codes utilisent la syntaxe complète pour maintenir la compatibilité avec tous les compilateurs Java prenant en charge les génériques.

8. Bonnes pratiques
Utilisez l'opérateur Diamond dans les projets prenant en charge JDK 7 pour optimiser et rendre le code plus lisible.
Préférez la syntaxe complète dans les exemples d'apprentissage ou les projets existants pour plus de clarté.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal