programacion - ¿Por qué no se puede usar la inicialización de campos de taquigrafía en los constructores de Java?
que es un atributo en java (3)
Además de usar el new Object[]{blah, blah....}
Este es un enfoque un poco más corto para hacer lo que quieres. Usa el método de abajo.
public static Object [] args(Object... vararg) {
Object[] array = new Object[vararg.length];
for (int i = 0; i < vararg.length; i++) {
array[i] = vararg[i];
}
return array;
}
PD: Java es bueno, pero apesta en situaciones como estas. Intente ruby o python para su proyecto si es posible y justificable. (Look java 8 aún no tiene una forma abreviada para rellenar un hashmap , y les llevó mucho tiempo hacer un pequeño cambio para mejorar la productividad del desarrollador )
Tomemos el siguiente ejemplo:
private int[] list;
public Listing() {
// Why can''t I do this?
list = {4, 5, 6, 7, 8};
// I have to do this:
int[] contents = {4, 5, 6, 7, 8};
list = contents;
}
¿Por qué no puedo usar la inicialización abreviada? La única forma en que puedo pensar en solucionar esto es hacer otra matriz y configurar la list
en esa matriz.
Cuando define la matriz en la línea de definición, asume que sabe cuál será el tipo, por lo que la new int[]
es redundante. Sin embargo, cuando utiliza la asignación, no asume que conoce el tipo de matriz, por lo que debe especificarla.
Ciertamente, otros idiomas no tienen un problema con esto, pero en Java la diferencia es si está definiendo e inicializando los campos / variable en la misma línea.
Try list = new int[]{4, 5, 6, 7, 8};
.