从方法返回数组 - java

Shi*_*rty 2 java arrays

private static Coordinate[] getCircleCoordintaes() {  
  Coordinate coordinates[] = {new Coordinate(0, 0)};
  return coordinates;   
}
Run Code Online (Sandbox Code Playgroud)

以上程序工作正常.在上面的返回程序中,坐标数组首先使用该行初始化数组

Coordinate coordinates[] = {new Coordinate(0, 0)}; 
Run Code Online (Sandbox Code Playgroud)

然后返回坐标.

但是当我尝试直接返回到线下时,然后得到了异常.

{new Coordinate(0, 0)} 
Run Code Online (Sandbox Code Playgroud)

其实我试图找到一种直接返回坐标数组的方法.我想跳过分配步骤.可能是我做错了什么.

如何直接返回这个数组?有什么建议吗?

Boh*_*rdt 10

return new Coordinate[] { new Coordinate(0, 0) }
Run Code Online (Sandbox Code Playgroud)

详细说明,您正在使用的构造({new Coordinate(0, 0)};)称为Array initilizer,根据JLS,它只能用于声明或作为Array创建表达式的一部分.

可以在声明(第8.3节,第9.3节,第14.4节)中指定数组初始值设定项,或者作为数组创建表达式(第15.10节)的一部分,以创建数组并提供一些初始值.

ArrayInitializer:
    { VariableInitializersopt ,opt }
Run Code Online (Sandbox Code Playgroud)

  • @Ankushsoni您正在创建并返回示例中的Coordinate对象数组(假设它是包含x和y的对象)属性.但是这个`new Coordinate [] {0,0}`尝试创建Coordinate数组并为它赋值两个int值(0).因此这段代码不会编译. (3认同)