2012-01-30 13 views
0

これを実行すると、NullPointerExceptionが返されます。それはラインで発生するlistings[i].input();ヌルポインタオブジェクトからメソッドを呼び出すときの例外

私はこの権利を宣言していますか?私は3つのリストオブジェクトの配列を、私のinput()メソッドで入力し、逆の順序で出力します。

public static void main(String[] args) { 

    Listing[] listings = new Listing[3]; 

    for (int i = 0; i < listings.length; i++) { 
     listings[i].input(); 
    } 

    for (int i = listings.length - 1; i >= 0; i--) { 
     System.out.println(listings[i]); 
    } 

} 
+0

デバッガを使用する方法を学びます。 – mre

答えて

5

個別のListingオブジェクトを作成していません。だからlistings[0] == null。これは配列のすべての要素に当てはまります。デフォルトではすべてnullに初期化されています。

listings[i].input()の前に、まずlistings[i] = new Listing()などと言う必要があります。私は間違っていない場合は

+0

配列を初期化することもできます:リスト[]リスト=新しいリスト[] {新しいリスト()、新しいリスト()、新しいリスト()} –

2

あなたのような何かをする必要があります:

for (int i = 0; i < listings.length; i++) 
{ 
    listings[i] = new Listing(); 
    listings[i].input(); 
} 
関連する問題