"El inicializador de matriz necesita un tipo de destino explícito": ¿por qué?
SiguiendoJEP 286: Inferencia de tipo variable local descripción
Me pregunto cuál es la razón para introducir una restricción de este tipo:
Main.java:199: error: cannot infer type for local variable k
var k = { 1 , 2 };
^
(array initializer needs an explicit target-type)
Entonces para mí lógicamente debería ser:
var k = {1, 2}; // Infers int[]
var l = {1, 2L, 3}; // Infers long[]
Porque el compilador de Javapuede Ya inferimos correctamente el tipo de una matriz:
void decide() {
arr(1, 2, 3); // call void arr(int ...arr)
arr(1, 2L, 3); // call void arr(long ...arr)
}
void arr(int ...arr) {
}
void arr(long ...arr) {
}
Entonces, ¿cuál es el impedimento?