开发者社区> 问答> 正文

简化Java中的数组声明

考虑以下数组声明,

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));

因此,num3如果我直接将右侧声明传递给有效的函数。

即Arrays.toString(new int[]{1,2,3})但是为什么不能num2做法

如果我打电话给someFunction({1,2,3,4,4})它抛出一个错误

表达式的非法开头。

如果两个声明均有效,那么为什么不能在method的参数中使用它? 当将一些临时数组传递给诸如以下的函数时,我试图简化方法

somefunction(new int[]{1,2,3,4})

有可能在Java中简化吗?任何Java 8技巧?

问题来源:Stack Overflow

展开
收起
montos 2020-03-26 12:20:35 510 0
1 条回答
写回答
取消 提交回答
  • 您必须创建一个实例以将其传递给方法,例如:

    someFunction(new int[]{});
    

    在您的情况下,它不起作用,因为您仅传递了类型,int[]而这是不正确的。

    有可能在Java中简化吗?任何Java 8技巧?

    我想用它 somefunc({1,2,3,4})

    然后,您可以使用varargs,如下所示:

    ReturnType someFunction(int... a){}
    

    那么您可以像下面这样调用此方法:

    someFunction(1, 2, 3, 4); // valid 
    someFunction(new int[]{1, 2, 3, 4}); // valid
    someFunction(num2); // valid
    

    回答来源:Stack Overflow

    2020-03-26 12:21:04
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载