¿Cómo es que la primera llamada a someMethod no se compila sin ser explícita que es String []?Inicialización de la matriz Java dentro de la lista de argumentos
Está bien utilizar un inicializador de matriz para crear una matriz String [] pero no puede usarla para pasar un argumento. ¿Las llaves se usan de alguna otra manera para pasar argumentos que descarrilan cómo espero que se comporte?
public void someMethod(String[] arr){
//do some magic
}
public void makeSomeMagic(){
String[] arr = {"cat", "fish", "cow"};
//Does not compile!
someMethod({"cat", "fish", "cow"});
//This compiles!
someMethod(new String[]{"cat", "fish", "cow"});
//This compiles!
someMethod(arr);
}
El error del compilador es el siguiente:
El algunMetodo (String []) en el tipo MOO no es aplicable a los argumentos (String, String, String)
Solo está permitido en el momento de la declaración. Es una cosa de sintaxis –