La simplificación de declaración de matriz en Java

Aashish Pawar:

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 num3si 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 el num2enfoque

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?

YCF_L:

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

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=298418&siteId=1
Recomendado
Clasificación