有没有办法在处理中附加一个对象数组?
Is there a way to append an array of objects in processing?
根据 Processing's documentation,您可以使用与附加任何其他数组相同的方式附加对象数组。
我正在这样做,但出现错误:
cannot convert from Object to sketch_220416a.planet[]
这是一个最小的、可重现的例子:
planet[] PLANETS = new planet[1];
void setup() {
PLANETS[0] = new planet(100, 10, 10);
planet tb = new planet(200,3,1);
PLANETS = append(PLANETS, tb);
size(800, 800);
}
class planet{
planet(float r, float x, float y)
{
}
/*Some code*/
}
来自您在问题中链接的文档页面:
When using an array of objects, the data returned from the function
must be cast to the object array's data type. For example: SomeClass[]
items = (SomeClass[]) append(originalArray, element).
在你的例子中看起来像这样:
PLANETS = (planet[]) append(PLANETS, tb);
(planet[])
部分只是告诉 Processing 将从 append
返回的元素转换为 planet
个对象的数组。
根据 Processing's documentation,您可以使用与附加任何其他数组相同的方式附加对象数组。 我正在这样做,但出现错误:
cannot convert from Object to sketch_220416a.planet[]
这是一个最小的、可重现的例子:
planet[] PLANETS = new planet[1];
void setup() {
PLANETS[0] = new planet(100, 10, 10);
planet tb = new planet(200,3,1);
PLANETS = append(PLANETS, tb);
size(800, 800);
}
class planet{
planet(float r, float x, float y)
{
}
/*Some code*/
}
来自您在问题中链接的文档页面:
When using an array of objects, the data returned from the function must be cast to the object array's data type. For example: SomeClass[] items = (SomeClass[]) append(originalArray, element).
在你的例子中看起来像这样:
PLANETS = (planet[]) append(PLANETS, tb);
(planet[])
部分只是告诉 Processing 将从 append
返回的元素转换为 planet
个对象的数组。