[英]String ArrayList returning null values
I'm new to java and doing some arraylist work, and when compiling my lists just return null values instead of names i have typed in. 我是java的新手,正在做一些arraylist工作,并且在编译列表时仅返回空值而不是我输入的名称。
I don't undersand why this is so, so if anyone could advise/help me that would be great. 我不明白为什么会这样,所以如果有人可以提供建议/帮助我,那将很棒。
Thanks in advanced. 提前致谢。
Here is my main code 这是我的主要代码
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());
}
}
}
And 和
class Student
{
private String studentName;
public StudentData(String name)
{
setName(name);
}
public String getName()
{
return studentName;
}
public void setName(String name)
{
studentName = name;
}
}
You're creating a student but didn't set the name : 您正在创建一个学生,但未设置名称:
String name = in.next();
Student s = new Student();
studentList.add(s);
Try with : 尝试:
String name = in.next();
Student s = new Student();
s.setName(name);
studentList.add(s);
Also replace your constructor. 同时替换您的构造函数。 Ie :
即:
public StudentData(String name){
setName(name);
}
should be 应该
public Student(String name) {
setName(name);
}
Then you will be able to do Student s = new Student(name);
然后,您将可以执行
Student s = new Student(name);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.