Java 不允许将数组初始值设定项作为方法参数传递
当我试图将数组初始值设定项作为方法参数传递时,我收到一个错误消息“此处不允许数组初始值设定项”Java 不允许将数组初始值设定项作为方法参数传递,java,arrays,initialization,Java,Arrays,Initialization,当我试图将数组初始值设定项作为方法参数传递时,我收到一个错误消息“此处不允许数组初始值设定项” methodtakingarayargument({0,0,0}) 但是,当显式提到类型时,构造就起作用了 methodtakingarayargument(新int[]{0,0,0}) 是否有不支持此构造的原因?oracle网站上似乎没有提到这一点的文档 编辑: 我知道在Java中创建数组有固定数量的方法。数组初始值设定项构造在Java中作为一级公民受到支持感觉很自然,就像在typescript这样
methodtakingarayargument({0,0,0})
但是,当显式提到类型时,构造就起作用了
methodtakingarayargument(新int[]{0,0,0})
是否有不支持此构造的原因?oracle网站上似乎没有提到这一点的文档
编辑:
我知道在Java中创建数组有固定数量的方法。数组初始值设定项构造在Java中作为一级公民受到支持感觉很自然,就像在typescript这样的语言中一样
正如其中一个答案所指出的,数组初始值设定项不是一个有效的表达式,这就是为什么它不能传递给方法。是这些问题的最终权威:一般而言,尤其是。
简而言之,您将发现:
newint[]{0,0,0}
是一个arrayCreationExpression,它又是一种表达式类型,因此允许在方法调用中作为参数李>
{0,0,0}
是一个arrayInitializer,它本身不是一个表达式,因此在方法调用中用作参数是不合法的