我想创建一个包含Array的ArrayList并调用该数组中对象的功能。
我正在尝试在数组内部调用函数display(),但是即使数组包含一个对象,我也要获取NPE。
这是我的代码:
class Ball
{
int x;
int y;
int size;
color c;
Ball()
{
x = int (random(width));
y = int (random(height));
size = int (random(100));
c = color(random(255));
}
void display()
{
fill(c);
ellipse(x,y,size,size);
}
}
ArrayList<Ball[]> balls;
void setup()
{
size(500,500);
balls = new ArrayList<Ball[]>();
for( int i = 0; i < 1; i++)
{
balls.add(new Ball[2]);
println(balls);
}
}
void draw()
{
background(255);
for( int i = 0; i < 1; i++)
{
Ball[] b = balls.get(i);
b[i].display();
}
}
有人知道怎么做这个吗?
最佳答案
您有一个空的Ball
数组的列表。在创建(空)数组之后添加球:
void setup()
{
size(500,500);
balls = new ArrayList<Ball[]>();
for( int i = 0; i < 1; i++)
{
Ball[] ballsArray = new Ball[2];
ballsArray[0] = new Ball();
ballsArray[1] = new Ball();
balls.add(ballsArray);
println(balls);
}
}