java - inicializar - que es un array en programacion
Inicialización de matriz de cadenas en Java (5)
Primero, esto no tiene nada que ver con String
, se trata de matrices ... y eso también específicamente sobre la inicialización declarativa de matrices.
Como todos discutieron en casi todas las respuestas aquí, puedes, al declarar una variable, usar:
String names[] = {"x","y","z"};
Sin embargo, después de la declaración, si desea asignar una instancia de una matriz:
names = new String[] {"a","b","c"};
AFAIK, la sintaxis de la declaración es solo un azúcar sintáctico y ya no se aplica cuando se asignan valores a las variables, porque cuando se asignan valores, se necesita crear una instancia correctamente.
Sin embargo, si nos preguntas por qué es así? Bueno ... buena suerte obteniendo una respuesta a eso. A menos que alguien del comité de Java responda eso o haya documentación explícita que cite dicho azúcar sintáctico .
Esta pregunta ya tiene una respuesta aquí:
Si declaro una matriz de String
:
String names[] = new String[3];
Entonces, ¿por qué no podemos asignar valores a la matriz declarada anteriormente de esta manera?
names = {"Ankit","Bohra","Xyz"};
Puedes hacer lo siguiente durante la declaración:
String names[] = {"Ankit","Bohra","Xyz"};
Y si quieres hacer esto en algún lugar después de la declaración:
String names[];
names = new String[] {"Ankit","Bohra","Xyz"};
Simplemente no es una sintaxis Java válida. Tu puedes hacer
names = new String[] {"Ankit","Bohra","Xyz"};
Te refieres a:
String names[] = {"Ankit","Bohra","Xyz"};
Pero solo puedes hacer esto en la misma declaración cuando lo declaras
names[] = {"Ankit","Bohra","Xyz"};
es un inicializador y se utiliza únicamente al construir o crear un nuevo objeto de matriz. No se puede usar para establecer la matriz. Puede usarlo cuando se declare como:
String[] names= {"Ankit","Bohra","Xyz"};
También puedes usar:
names=new String[] {"Ankit","Bohra","Xyz"};