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