簡體   English   中英

arraylist中的對象打印為空

[英]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.

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