2016-04-28 12 views
0

私はArrayを含むArrayListを作成し、その配列内のオブジェクトの関数を呼び出したいと考えています。ArrayListで配列の関数を呼び出す方法は? Java

配列の中に関数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(); 
    } 
} 

誰もがこれを行う方法を知っているのですか?

+0

'balls.get(0)[0] .displayを()'あなたの問題は、あなたがどんなボールを作成していないということです – 11thdimension

+2

を働くだろう。 –

+2

配列が空です。あなたはボールを作りませんでした。 –

答えて

1

空のリスト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); 
    } 
} 
+0

ありがとうございました:D –

関連する問題