2011-02-17 22 views

答えて

10

arrはすべてオブジェクト参照の配列ですが、実際のオブジェクトを指すようには初期化されていません。

また、実行する必要があります。

arr[0] = new Movie(); 
arr[1] = new Movie(); 
1

何もまだムービーの配列ではありません。あなたがそれらに行動する前にあなたの配列にオブジェクトを配置する必要があります。

"Movie [] arr = new Movie [2];"と "arr [0] .playIt();"を使用する場合は、.playIt()関数を実行して実際に何かを発生させるために、ムービーオブジェクトを配列に割り当てる必要があります。

1

NPEarr[0].playIt();それはしかし、あなたのオブジェクトとは何の関係も持っていないです

で、前の行である、それはあなたの配列が空であるという事実です。

1
Movie [] arr = new Movie[2]; // creates an empty array of two elements [null, null] 

// now lets add Movie objects 
arr[0] = new Movie(); 
... 

私は、配列の代わりのArrayListを使用することをお勧め:

List<Movie> movies = new ArrayList<Movie>(); 
movies.add(new Movie()); 
... 
1

あなたの配列を入力する必要があります。今まであなたがしたのは、ムービーオブジェクトの配列のためのスペースを割り当てることだけでした。あなたはその空間にどんな物体も置かなかった。 arr [i] = new Movie();を使用できます。ここで、iは配列インデックスです