• 締切済み

構造体クラスにアクセスすると止まる

class ListScheduleData{ String schedule; String place; String owner_id; public String getOwner_id() { return owner_id; } public void setOwner_id(String owner_id) { this.owner_id = owner_id; } public String getPlace() { return place; } public void setPlace(String place) { this.place = place; } public String getSchedule() { return schedule; } public void setSchedule(String schedule) { this.schedule = schedule; } } こんな感じで構造体?を宣言しておいて ListScheduleData[] lsd = new ListScheduleData[512]; インスタンス化して、ローカル変数の値を、構造体?クラスの変数に入れようとするとなぜかプログラムが停止します。 なぜでしょうか?構造体はprivate宣言してないので、直接でもセッターでも書き換えできると思うのですが。。。 したの様な感じでアクセスしてます。 System.out.println("user_id ="+user_id); System.out.println("time_buf = "+time_buf); System.out.println("schedule ="+schedule); System.out.println("place ="+place); lsd[pos].schedule = schedule; lsd[pos].owner_id = user_id; lsd[pos].place = place; lsd[pos].setSchedule(schedule); lsd[pos].setOwner_id(user_id); lsd[pos].setPlace(place); //System.out.println(lsd[pos].getSchedule()); //System.out.println(lsd[pos].getOwner_id()); //System.out.println(lsd[pos].getPlace()); 直接アクセスする場合も、セッターを使う場合も、そのコードの行で止まってしまい、次の行にいきません。 よろしくお願いします><

みんなの回答

回答No.2

「止まってしまい」 ってどういうことですか? エラーや例外が発生するなら、その内容を調べましょう。 ListScheduleData[] lsd = new ListScheduleData[512]; と配列の領域を確保したあとに、上記配列の各要素にListScheduleDataのインスタンスを入れていますか? 例 lsd[0] = new ListScheduleData(); … lsd[512] = new ListScheduleData();

すると、全ての回答が全文表示されます。
  • liar_adan
  • ベストアンサー率48% (730/1515)
回答No.1

もしかしたら、このようにアクセスしていませんか。 ListScheduleData[] lsd = new ListScheduleData[512]; //(A) int pos = 100;//例 lsd[pos].schedule = schedule; lsd[pos].owner_id = user_id; lsd[pos].place = place; ... (A)のところに、以下のような処理を入れなければなりません。 for(int i = 0; i < lsd.length; i++){ lsd[i] = new ListScheduleData(); } Javaのオブジェクト型で、配列が宣言されたときは、 配列の中身はまだ生成されていません。 「差し込み口が512箇所あるテーブルタップを入手した。 でもまだ電気器具が接続されていない」状態になっています。 ただ、int型やboolean型の基本型の場合は、 配列を作ればすぐ変数が使えるようになっています。 基本型とオブジェクト型でここが大きく違います。 ややこしいところだと思いますが…。

すると、全ての回答が全文表示されます。

関連するQ&A