gpt4 book ai didi

java - 如何在java方法中将数组作为参数传递?

转载 作者:搜寻专家 更新时间:2023-10-30 21:17:04 26 4
gpt4 key购买 nike

代码:

Object[] a={ myObject};
someMethod(Object ...arg);

当我尝试时:

someMethod ( {myObject} );

我在 Eclipse 中收到错误。

但是当:

someMethod ( a );

一切正常。为什么会有这种差异?谢谢。

最佳答案

因为 { myObject } 语法是 special syntactic sugar这仅在您初始化数组变量时适用。这是因为赋值本身缺少类型信息;但在赋值的特殊情况下,类型完全从变量中推断出来。

在第一个示例中,编译器知道您正在分配给 a(它是一个 Object[]),因此这种语法是允许的。在后者中,您没有初始化变量(并且由于 Java 类型推断的弱点,它甚至无法完全解决参数分配的上下文)。所以它不知道数组应该是什么类型,即使它可以明确地确定这就是你想要做的(而不是例如声明一个 block )。

打电话

someMethod ( new Object[] { myObject } )

如果您想在不使用变量的情况下就地定义数组,这将有效。


虽然上面回答了你的问题,但我注意到你调用的方法是 varargs而不是明确要求数组参数。所以在这种情况下你可以简单地调用

someMethod(myObject);

关于java - 如何在java方法中将数组作为参数传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11332535/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com