Génériques Java - Inférence de type

L'inférence de type représente la capacité du compilateur Java à examiner un appel de méthode et sa déclaration correspondante pour vérifier et déterminer le ou les arguments de type. L'algorithme d'inférence vérifie les types des arguments et, si disponible, le type attribué est renvoyé. Les algorithmes d'inférence essaient de trouver un type spécifique qui peut remplir tous les paramètres de type.

Le compilateur génère un avertissement de conversion non vérifiée dans le cas où l'inférence de type n'est pas utilisée.

Syntaxe

Box<Integer> integerBox = new Box<>();

  • Box - Box est une classe générique.

  • <> - L'opérateur losange désigne l'inférence de type.

La description

À l'aide de l'opérateur diamant, le compilateur détermine le type du paramètre. Cet opérateur est disponible à partir de la version Java SE 7.

Exemple

Créez le programme Java suivant en utilisant n'importe quel éditeur de votre choix.

GenericsTester.java

package com.tutorialspoint;

public class GenericsTester {
   public static void main(String[] args) {
      //type inference   
      Box<Integer> integerBox = new Box<>();
      //unchecked conversion warning
      Box<String> stringBox = new Box<String>();

      integerBox.add(new Integer(10));
      stringBox.add(new String("Hello World"));

      System.out.printf("Integer Value :%d\n", integerBox.get());
      System.out.printf("String Value :%s\n", stringBox.get());
   }
}

class Box<T> {
   private T t;

   public void add(T t) {
      this.t = t;
   }

   public T get() {
      return t;
   }   
}

Cela produira le résultat suivant.

Production

Integer Value :10
String Value :Hello World