gpt4 book ai didi

java - ArrayList不会显示其元素

转载 作者:行者123 更新时间:2023-12-01 19:41:32 26 4
gpt4 key购买 nike

这是我的对象类:

public class Book {

private String title;
private int year;

public Book(String title, int year){
title = this.title;
year = this.year;
}

public String getTitle(){return title;}
public int getYear(){return year;}

public String toString(){return (title + "\t" + year);}
}

应用程序类将从 BookInput.txt 中读取数据,其中已有书名和出版年份的数据,并将数据传输到名为 BookList 的数组列表中。一个索引中记录一本书名及其出版年份(即一个索引中有两个数据,一个字符串和一个整数)

这是我的应用程序类:

    ArrayList <Book> BookList = new ArrayList();
BufferedReader br = new BufferedReader (new FileReader ("bookInput.txt"));

String str = br.readLine();
while (str!=null){
StringTokenizer st = new StringTokenizer(str,";");
String title = st.nextToken();
String yr = st.nextToken();
int year = Integer.parseInt(yr);
Book b1 = new Book (title,year);
BookList.add(b1);
str = br.readLine();
}
br.close();

for (int i = 0; i < BookList.size(); i++){
Book b2 = BookList.get(i);
System.out.println("#" + (i+1) + " " + b2.getTitle() + " , " + b2.getYear());
}

对于所有标题,我的显示结果将为 null,对于所有发布年份,我的显示结果将为 0。可以编译,没有任何错误。

最佳答案

您必须以相反的方式设置对象的属性,并且可以考虑将私有(private)字段设置为final(在这种情况下,如果最终值未在构造函数):

private final String title;
private final int year;

public Book(String title, int year){
this.title = title;
this.year = year;
}

关于java - ArrayList不会显示其元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55275555/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com