Java Generics - Typinferenz

Die Typinferenz repräsentiert die Fähigkeit des Java-Compilers, einen Methodenaufruf und die entsprechende Deklaration zu prüfen, um die Typargumente zu überprüfen und zu bestimmen. Der Inferenzalgorithmus überprüft die Typen der Argumente und, falls verfügbar, wird der zugewiesene Typ zurückgegeben. Inferenzalgorithmen versuchen, einen bestimmten Typ zu finden, der alle Typparameter erfüllen kann.

Der Compiler generiert eine ungeprüfte Konvertierungswarnung, falls keine Typinferenz verwendet wird.

Syntax

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

Wo

  • Box - Box ist eine generische Klasse.

  • <> - Der Diamantoperator bezeichnet die Typinferenz.

Beschreibung

Mit dem Diamantoperator bestimmt der Compiler den Typ des Parameters. Dieser Operator ist ab der Java SE 7-Version verfügbar.

Beispiel

Erstellen Sie das folgende Java-Programm mit einem beliebigen Editor Ihrer Wahl.

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

Dies führt zu folgendem Ergebnis.

Ausgabe

Integer Value :10
String Value :Hello World