pasando una matriz de cadenas como argumento
Una matriz de cadenas se puede declarar e inicializar de la siguiente manera:
String[] str = {"A", "B"};
pero para un método que acepta una matriz de cadenas como argumento, ¿por qué no se puede usar el mismo allí?
Por ejemplo: si en el código de abajo, sustituyo la llamada a show () deshow(str);
ashow({"A" "B"});
, muestra error compilador. ¿Por qué?
public class StringArray {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String[] str = {"A", "B"};
show(str);
}
static void show(String[] s) {
System.out.println(s[0] + s[1]);
}
}
Los errores del compilador que se muestran son:
StringArray.java:9: illegal start of expression
show({"A", "B"});
^
StringArray.java:9: ';' expected
show({"A", "B"});
^
StringArray.java:9: illegal start of expression
show({"A", "B"});
^
StringArray.java:9: ';' expected
show({"A", "B"});
^
StringArray.java:9: illegal start of type
show({"A", "B"});
^
StringArray.java:11: class, interface, or enum expected
static void show(String[] s) {
^
StringArray.java:13: class, interface, or enum expected
}
^
7 errors
También usandoshow(new String[] {"A", "B"});
esta permitido. Como esnew String[]{"A", "B"}
diferente de{"A", "B"}
¿Cuándo pasarlos como argumentos de método? Gracias de antemano!