[英]Object in arraylist printing null
我正在嘗試制作一種日記,該日記存儲日記條目(日記)的列表,每個日記條目都包含標題,日期和條目。 這些將由DiaryBook類添加,刪除和顯示。 現在,我只是想通過打印出字段來對其進行測試,但是它們都打印為null。 我已經看過類似的問題,但仍然無法找出原因。 我是Java的新手,所以對您的幫助/評論都表示贊賞。
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();
}
}
}
我的日記課:
公共課日記{
String title;
Calendar date;
String content;
public Diary (String title, Calendar date, String content) {
title = this.title;
date = this.date;
content = this.content;
}
public void getTitle() {
System.out.println(title);
}
public void getDate() {
System.out.println(date);
}
public void getContent() {
System.out.println(content);
}
}
輸入:
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”語句引用該類中已定義的語句,而沒有“ this”語句的則引用參數中的語句。 因此,正如您所提到的,您只需要切換它們,它就顯示為空,因為它們沒有聲明為任何東西。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.