El siguiente código usa matrices simples de String en Java.Pasar matrices como parámetros de método en Java
package javaarray;
final public class Main
{
public void someMethod(String[] str)
{
System.out.println(str[0]+"\t"+str[1]);
}
public static void main(String[] args)
{
String[] str1 = new String[] {"day", "night"};
String[] str2 = {"black", "white"};
//Both of the above statements are valid.
Main main=new Main();
main.someMethod(str1);
main.someMethod(str2);
//We can invoke the method someMethod by supplying both of the above arrays alternatively.
main.someMethod(new String[] { "day", "night" }); //This is also valid as obvious.
main.someMethod({ "black", "white" }); //This is however wrong. The compiler complains "Illegal start of expression not a statement" Why?
}
}
En el fragmento de código anterior, podemos inicializar matrices como esta.
String[] str1 = new String[] {"day", "night"};
String[] str2 = {"black", "white"};
y podemos pasar directamente a un método sin ser asignado como este.
main.someMethod(new String[] { "day", "night" });
Si es así, entonces la siguiente declaración también debería ser válida.
main.someMethod({ "black", "white" });
pero el compilador se queja de "Inicio ilegal de la expresión no es una afirmación" ¿Por qué?
supongo que de alguna manera tiene que pasar la referencia de la matriz de cadenas. Por lo que estás haciendo, eso no sucede. – noMAD
Puede ser difícil analizar correctamente en la forma que desee, por ejemplo, si el compilador ve '{1, 12, 57}', lo que debería ser - un 'byte []', 'short []', ' int [] ', o' long [] '? Con el tipo explícito, la ambigüedad se ha ido. – trutheality