List<Student> studentInfo = new LinkedList<Student>();
int choice;
boolean flag = true;
Student student = new Student();
while(flag)
{
System.out.println();
System.out.println("Press 1 to Add Student details");
System.out.println("Press 2 to Display Student details");
System.out.println("Press 3 to Sort");
System.out.println("Press 4 to Search");
System.out.println("Press 5 to Exit");
System.out.println("Enter your choice: ");
choice = sc1.nextInt();
switch(choice)
{
case 1: studentInfo.add(student.addDetails());
break;
case 2: System.out.println("Details of Students are as follows: ");
for(Student s : studentInfo){
System.out.println(s);
}
break;
//More code
Student クラスの addDetails() メソッドは次のとおりです。
public Student addDetails()
{
System.out.println("Enter the name: ");
name = sc2.nextLine();
this.setName(name);
return this;
}
ケース 1 ブロックを使用して学生の詳細を取得し、学生情報コレクションに追加しています。しかし、最後に入力した詳細を表示すると、以前の詳細がすべて上書きされ、それらを印刷すると、追加した学生の数だけ表示されます。誰かが私が間違ったことをしたことを教えてもらえますか? ありがとう!
出力: 生徒の詳細は次のとおりです: name=Amar, age=0, semester=0, sub_1_marks=0, sub_2_marks=0, sub_3_marks=0, percentage=0, totalMarks=0 name=Amar, age=0, semester= 0、sub_1_marks=0、sub_2_marks=0、sub_3_marks=0、パーセンテージ=0、totalMarks=0