0

重複の可能性:
オブジェクトの配列を作成するときのNullPointerException

メインメソッドの行にNullPointerExceptionがあります

array[0].name = "blue"; 

構造クラス:

public class Items {

String name = "";
String disc = "";
}

メインクラス:

public class ItemsTest {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        Items[] array = new Items[2];

            array[0].name = "blue"; //NullPointerException
        array[0].disc = "make";
        array[1].name = "blue";
        array[1].disc = "blue";
           }
}

これを解決する方法を教えてください。

4

3 に答える 3

2
Items[] array = new Items[2];

配列の各要素を初期化する必要があります。デフォルトでは、null

成功する、

Items[] array = new Items[2];
//initialization
array[0] = new Items();
array[0].name = "blue"; //NullPointerException
array[0].disc = "make";

//initialization
array[1] = new Items();
array[1].name = "blue";
array[1].disc = "blue";
于 2012-07-18T09:55:19.480 に答える
1

あなたがその行を書いたとき:

Items[] array = new Items[2];

2つの要素を含むことができるタイプItemsの配列を初期化しました。つまり、コンテナのみを初期化しました。

配列内の各要素はオブジェクトであり、初期化も必要です。アドレス指定するときに、array[0].name現在存在する内部要素にアクセスしようとしていnull ます。JigarJoshiの回答を確認すると、配列内の各Items要素も初期化されていることがわかります。 。

お役に立てれば!

于 2012-07-18T11:49:24.710 に答える
0
Items[] array = new Items[2]; // Creates an array of Items with null values

したがって、使用する必要があります

Items[] array = { new Items(), new Items() }; // as suggested by aioobe....

または、次のようにアレイを初期化する必要があります

array[0] = new Items();
于 2012-07-18T10:12:29.967 に答える