我想创建一个包含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);
  }
}

10-08 15:35