Ésta es una pregunta un seguimiento de la discusión:Java 7 Operación Diamante en llamada al método
Why doesn't the diamond operator work within a addAll() call in Java 7?
Desde el Tutorial de Java,
http://docs.oracle.com/javase/tutorial/java/generics/gentypeinference.html
Tenga en cuenta que la el diamante a menudo funciona en llamadas a métodos; sin embargo, para mayor claridad, se sugiere que use el diamante principalmente para inicializar una variable donde se declare
Por lo tanto, estoy un poco confundido acerca de la primera línea. Cuando hace ¿diamante funciona en llamadas de método?
un poco más explicación sobre cómo funciona el operador de diamantes se pueden encontrar aquí:
Y a partir de esto, me han tratado los siguientes, que funciona bien:
Dale que tengo:
private static class Box<T>{
public Box(T t){}
}
static void f(Box<Integer> box){}
una llamada como la siguiente compila bien:
f(new Box<>(new Integer(10)));
El El parámetro tipo invocando el constructor en la llamada al método de f()
anterior se deduce del argumento para el constructor (es decir, Integer
).
Así que es esto lo que se quiere decir cuando el tutorial dice
Tenga en cuenta que el diamante a menudo trabaja en método llama
Si no es así, ¿puede alguien tan amable de proporcionar un ejemplo en el diamante obras en la llamada al método?
@gurung es un error tipográfico. Caso grave de cortar y pegar :( –