4

おはようございます、私は Java でこのクラスを作成します:

public class MapPoint {          
    public MapPoint() {
      this.tag = new String() ;
      this.Id = 0 ;
    }

public long Id;
public double lon;
public double lat;
public String tag; 

}

MapPointしかし、次のようにメイン関数で配列を作成したい場合:

public class mainTestClass {


    public static void main(String[] args){ 
       MapPoint[] mapPoints = new MapPoint[100];
       mapPoints[0].setId(2);
       System.out.println(mapPoints[0].Id);

   }
}

こんなヒントがあります

「配列は読み取られるだけで、書き込まれることはありません」

プログラムを実行すると、次のエラーが発生します。

mainTestClass.main(mainTestClass.java:34) でのスレッド「メイン」java.lang.NullPointerException での例外。

助けてください

ありがとう。

4

3 に答える 3

9

最大 100 個の MapPoint オブジェクトを含むことができる配列を宣言しました。ここで、配列にオブジェクトを作成する必要があります。

mapPoints[0] = new MapPoint();
mapPoints[0].setId(2);

あなたがやっているときはMapPoint[] mapPoints = new MapPoint[10];、この状況のようです: ここに画像の説明を入力

それがあなたが得た理由ですNullPointerException

于 2013-10-20T08:39:48.290 に答える
1

これは、最初に変数を初期化する必要があるためです。

mapPoints[0] = new MapPoint().setId(2);
于 2013-10-20T08:40:21.680 に答える