オブジェクトクラスの人の配列に関する問題について教えてもらえますか?私はプログラムを実行するたびに、私はNULLポインタの問題を抱えています。ここにコードがあります。Arrayオブジェクトの生徒を作成してArrayListに追加
List<Student> listPerson = new ArrayList<>();
Student[] stud = null;
int counter = 0;
ResultSet rs = DBMSConnection.GetDetails();
while(rs.next()){
stud[counter] = new Student();
stud[counter].setFirst_name(rs.getString("first_name"));
stud[counter].setLast_name(rs.getString("last_name"));
stud[counter].setAddress(rs.getString("address"));
counter++;
}
for(int i = 0 ; i < counter ; i++){
listPerson.add(stud[i]);
}
これは、あなたが、私は本当にこの男のようなものです何をしたいです他の回答に
を追加編集です。
Student stud = new Student();
stud.firstname = "john";
stud.lastname = "doe";
Student stud2 = new Student();
stud2.firstname = "Mike";
stud2.lastname = "doe";
List<Student> list = new ArrayList<>();
list.add(stud);
list.add(stud2);
注:ループ内にスタッドスタンプを作成する方法はありますか。例えば。
int record = 100;
Student[] sa = null;
for(int i = 0; i<record; i++){
sa[i] = new Student[]; //instantiate Objects on the fly
list.add(sa[i]);
}
私はスタッド最初のレコードstud2の値を有する第2のレコードを持っているように、第1のオブジェクトのインスタンスにすべての最初のレコードを割り当て、リストにそれを渡します。
、どのようなIここでやろうとしているのは、私はデータベースにアクセスし、すべての生徒のレコードを順番にループし、結果セットを使用してプログラムに渡していることです。私の考えでは、クラスstudentのオブジェクトの動的配列を作成し、データベースから詳細を取得します。ここにいくつかのガイドが必要です。ありがとう – kornben
あなたの配列のサイズは何ですか? "student [] stud = null"?それはnullから変更されないので、サイズは0です...あなたは新しい要素を配列に追加しています。あなたは本当にその配列を必要としません。ちょうどこれは: "while(rs.next()){listPerson.add(新しい学生(rs.getString(" first_name ")、rs.getString(" last_name ")、rs.getString(" address "));"注意:すべての学生の詳細を持つ空でないコンストラクタを作成する必要があります。 – Shondeslitch
私はちょうど大きな値の配列を保持するために動的配列を作成したい配列のサイズを追跡したくないので、Studentクラスのオブジェクト配列は動的でなければなりません。技術的には、Studentオブジェクトのサイズはレコードのサイズと一致する必要があります。 – kornben