gaggitのブログ

コーディング、ガジェット、TIPS関連、FX

Android Studio 値を代入時にNullPointerException

先日、独自のShopというクラスを配列で作成した。よくある.set~、.get~というやつです。処理速度の観点から言うと、String型の配列で十分なのですが、勉強も兼ねてj作成してみました。。実行してみると、shop.set~で、NullPointerExceptionが発生しました。なんとなく初期化がされていないんだーと、分かりましたが、どう書くのか。。。。

宣言は、こうです。

Shop shop = new Shop[5000];

Class Shop{

  String name;

  String addr;

  public Shop{

    name = "";

    addr = "";

  }

  public voic setData(String  data){// dataは2次元

     name = data[0];

     addr = data[1];

  }

...

}

2,3時間、いろいろ試してみたのですが、自力ではだめでした。ネットで検索したところ、newで配列を確保した後、以下のようにfor分で配列分ループさせて、1つづつ、初期化していくようです。

Shop[] shop = new Shop[5000];

for (i=0;i<5000;i++){

  shop[i] = new Shop();

}

shop[i].setData(data[i]);