Considere la siguiente declaraciones de matrices,
int[] num2 = {1, 2, 3, 4, 5};
int[] num3 = new int[]{1, 2, 3, 4, 5};
System.out.println(Arrays.toString(num2));
System.out.println(Arrays.toString(num3));
Así que para el
num3
si pasaba directamente el derecho declaración de lado a una función de su validez.es decir,
Arrays.toString(new int[]{1,2,3})
¿Por qué no puede elnum2
enfoque
si llamo someFunction({1,2,3,4,4})
arroja un error como
ilegal del comienzo de una expresión.
Si ambas declaraciones son válidas, entonces por qué no puedo utilizar en los argumentos de método?
Yo estaba tratando simplemente el enfoque, al pasar alguna matriz temporal a una función como
somefunction(new int[]{1,2,3,4})
¿Es posible simplificar esto en java? cualquier java 8 trucos?
Hay que crear una instancia para pasarlo al método, por ejemplo:
someFunction(new int[]{});
No funciona en su caso, ya que passe sólo el tipo int[]
y esto no es correcto.
¿Es posible simplificar esto en java? cualquier java 8 trucos?
Quiero utilizarlo como
somefunc({1,2,3,4})
A continuación, puede utilizar varargs, así:
ReturnType someFunction(int... a){}
a continuación, se llama a este método, así:
someFunction(1, 2, 3, 4); // valid
someFunction(new int[]{1, 2, 3, 4}); // valid
someFunction(num2); // valid