2
    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

4

1 に答える 1