Java Generics - wnioskowanie o typie
Wnioskowanie o typie reprezentuje zdolność kompilatora Java do spojrzenia na wywołanie metody i odpowiadającą jej deklarację w celu sprawdzenia i określenia argumentów typu. Algorytm wnioskowania sprawdza typy argumentów i, jeśli jest dostępny, zwracany jest przypisany typ. Algorytmy wnioskowania próbują znaleźć określony typ, który może spełnić wszystkie parametry typu.
Kompilator generuje niesprawdzone ostrzeżenie o konwersji w przypadku, gdy wnioskowanie o typie nie jest używane.
Składnia
Box<Integer> integerBox = new Box<>();
Gdzie
Box - Box to klasa ogólna.
<> - Operator rombu oznacza wnioskowanie o typie.
Opis
Używając operatora diamentu, kompilator określa typ parametru. Ten operator jest dostępny od wersji Java SE 7 i nowszych.
Przykład
Utwórz następujący program Java za pomocą dowolnego wybranego edytora.
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;
}
}
Spowoduje to następujący wynik.
Wynik
Integer Value :10
String Value :Hello World