考虑以下数组声明,
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));
So for the
num3
if I passed directly the right hand side declaration to a functions its valid.i.e.
Arrays.toString(new int[]{1,2,3})
But Why can't thenum2
approach
如果我调用 someFunction({1,2,3,4,4})
它会抛出一个错误
illegal start of an expression.
如果两个声明都有效,那么为什么我不能在方法的参数中使用它?
当将一些临时数组传递给函数(例如)时,我试图简化该方法
somefunction(new int[]{1,2,3,4})
是否可以在java中简化这个?有什么 java 8 技巧吗?
最佳答案
您必须创建一个实例才能将其传递给方法,例如:
someFunction(new int[]{});
它不适用于您的情况,因为您仅传递类型 int[]
而这是不正确的。
Is it possible simplify this in java ? any java 8 tricks ?
I want to use it as
somefunc({1,2,3,4})
然后你可以使用可变参数,如下所示:
ReturnType someFunction(int... a){}
然后你像这样调用这个方法:
someFunction(1, 2, 3, 4); // valid
someFunction(new int[]{1, 2, 3, 4}); // valid
someFunction(num2); // valid
关于java - 简化 Java 中的数组声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60680605/