Java Generics - Inferencia de tipos
La inferencia de tipo representa la capacidad del compilador de Java para observar la invocación de un método y su declaración correspondiente para verificar y determinar los argumentos de tipo. El algoritmo de inferencia comprueba los tipos de argumentos y, si está disponible, se devuelve el tipo asignado. Los algoritmos de inferencia intentan encontrar un tipo específico que pueda cumplir con todos los parámetros de tipo.
El compilador genera una advertencia de conversión sin comprobar en caso de que no se utilice la inferencia de tipo.
Sintaxis
Box<Integer> integerBox = new Box<>();
Dónde
Box - Box es una clase genérica.
<> - El operador de diamante denota inferencia de tipo.
Descripción
Usando el operador de diamante, el compilador determina el tipo de parámetro. Este operador está disponible desde la versión Java SE 7 en adelante.
Ejemplo
Cree el siguiente programa Java utilizando cualquier editor de su elección.
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;
}
}
Esto producirá el siguiente resultado.
Salida
Integer Value :10
String Value :Hello World