Java arraylist中的对象打印为空
我正在尝试制作一个日记,它存储了一个日记条目列表,每个日记条目都有标题、日期和条目。日记本类将添加、删除和显示这些内容。现在我只是想通过打印字段来测试它,但是它们都打印为空。我已经研究过类似的问题,但我仍然不知道为什么。我是java新手,因此非常感谢您的帮助/意见Java arraylist中的对象打印为空,java,Java,我正在尝试制作一个日记,它存储了一个日记条目列表,每个日记条目都有标题、日期和条目。日记本类将添加、删除和显示这些内容。现在我只是想通过打印字段来测试它,但是它们都打印为空。我已经研究过类似的问题,但我仍然不知道为什么。我是java新手,因此非常感谢您的帮助/意见 public class DiaryBook { ArrayList<Diary> diaryList = new ArrayList<Diary>(); static Scanner scanner = n
public class DiaryBook {
ArrayList<Diary> diaryList = new ArrayList<Diary>();
static Scanner scanner = new Scanner(System.in);
public void addDiary () {
String title;
String content;
Calendar date;
String[] splitDate;
System.out.print("Entry title: ");
title = scanner.nextLine();
System.out.print("Entry for date (dd/mm/yyyy): ");
splitDate = scanner.next().split("/");
scanner.nextLine();
int day = Integer.parseInt(splitDate[0]);
int month = Integer.parseInt(splitDate[1]);
int year = Integer.parseInt(splitDate[2]);
date = new GregorianCalendar(year,month-1,day);
System.out.print("Entry: ");
content = scanner.nextLine();
Diary d = new Diary (title, date, content);
diaryList.add(d);
}
public void printDiaries() {
for (Diary x:diaryList) {
x.getTitle();
x.getDate();
x.getContent();
}
}
}
输入:
Entry title: Blah
Entry for date (dd/mm/yyyy): 22/12/1990
Entry: Something
输出:
null
null
null
谢谢。您为错误的参数指定了错误的值
public Diary (String title, Calendar date, String content) {
title = this.title;
date = this.date;
content = this.content;
}
这是将实例变量的值分配给参数,这对
相反,请尝试将参数分配给实例变量
public Diary (String title, Calendar date, String content) {
this.title = title;
this.date = date;
this.content = content;
}
另外,get方法应该返回值,而不是打印它们…只是说…您正在混合变量。java中的this语句指的是类中已经定义的语句,而没有该语句的语句指的是参数中的语句。如前所述,您只需要切换它们,它会打印null,因为它们没有声明为任何内容
public Diary (String title, Calendar date, String content) {
this.title = title;
this.date = date;
this.content = content;
}