簡體   English   中英

字符串ArrayList返回空值

[英]String ArrayList returning null values

我是java的新手,正在做一些arraylist工作,並且在編譯列表時僅返回空值而不是我輸入的名稱。

我不明白為什么會這樣,所以如果有人可以提供建議/幫助我,那將很棒。

提前致謝。

這是我的主要代碼

import java.util.*;

public class StudentData 
{
    public static void main(String[] args) 
    {
        Scanner in = new Scanner(System.in);
        ArrayList<Student> studentList = new ArrayList<Student>();
        String yesNo = "true";
        do
        {
            System.out.println("Enter student's name: ");
            String name = in.next();
            Student s = new Student();   
            studentList.add(s);
            String input;
            do
            {   
                System.out.println("Would you like to enter data for another student? Yes/No ");
                yesNo = in.next();
                }
            while (!yesNo.equalsIgnoreCase("YES") && !yesNo.equalsIgnoreCase("NO"));
            }   
        while (yesNo.equalsIgnoreCase("YES"));


        for(int i = 0; i < studentList.size(); i++)
        {
            System.out.println(studentList.get(i).getName());
            }
        }
    }

class Student 
{
    private String studentName;

    public StudentData(String name)
    {
        setName(name);
    }
    public String getName()
    {
        return studentName;
        }
    public void setName(String name)
    {
        studentName = name;
        }
    }

您正在創建一個學生,但未設置名稱:

            String name = in.next();
            Student s = new Student();   
            studentList.add(s);

嘗試:

        String name = in.next();
        Student s = new Student();   
        s.setName(name);
        studentList.add(s);

同時替換您的構造函數。 即:

public StudentData(String name){
        setName(name);
}

應該

public Student(String name) {
        setName(name);
}

然后,您將可以執行Student s = new Student(name);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM