gpt4 book ai didi

java - 带索引的数组赋值仅适用于大括号

转载 作者:行者123 更新时间:2023-11-30 10:07:35 24 4
gpt4 key购买 nike

我遇到了一个奇怪的问题,我无法通过索引为 GameObject 数组分配值 (Object s),但是当我将表达式放在大括号中时它起作用了。GameObject是一个接口(interface),Sphere(Objects)实现了它

我基本上已经尝试了所有方法,但正如我所说,将表达式放在大括号中是可行的,但我想知道为什么会这样。

Sphere s = new Sphere(new double[] {0,0,50},10,new Color(255,0,0));
GameObject[] objs = new GameObject[5];
objs[0] = s;

不起作用,

但这行得通:

 Sphere s = new Sphere(new double[] {0,0,50},10,new Color(255,0,0));
GameObject[] objs = new GameObject[5];
{objs[0] = s;}

我从 2018 年 12 月开始使用 eclipse IDE

最佳答案

我假设您正在尝试这样的事情。

class YourClass {
Sphere s = new Sphere(new double[] {0,0,50},10,new Color(255,0,0));
GameObject[] objs = new GameObject[5];
objs[0] = s;
}

这在 Java 中是不允许的。您只能将方法声明和字段声明直接放在类内部。你可以把随机语句放在那里——它们必须在方法、构造函数中,或者你把它放在大括号中以形成 initializer block。 .这就是您将如何使用这样的初始化程序 block 。

class YourClass {
GameObject[] objs = new GameObject[5];

{/* initializer block */
objs[0] = new Sphere(new double[] {0,0,50},10,new Color(255,0,0));
}
}

关于java - 带索引的数组赋值仅适用于大括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54172230/

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