我正在做家庭作业,但无法弄清楚我做错了什么。
我正在尝试使用 ArrayList 创建书名列表
到目前为止,这是我的代码:
import java.awt.print.Book;
import java.util.ArrayList;
public class Books {
public static void main (String[] args){
ArrayList<Book> bookTitle = new ArrayList<Book>();
bookTitle.add ("Book title 1");
bookTitle.add ("Book title 2");
bookTitle.add ("Book title 3");
System.out.println("Size of Book list: " + bookTitle.size());
}
}
这段代码在 bookTitle.add 的三行中给出了以下错误: “类型 ArrayList 中的方法 add(Book) 不适用于参数 (String)”
然后我尝试了这个:
Book book1 = new Book("Book title");
bookTitle.add (book1);
这给了我一个“The constructor Book(String) is undefined”错误。
请记住,我是 Java 菜鸟,所以我可能犯了一些非常基本的错误而没有意识到。
非常感谢您的帮助和时间。
最佳答案
类型 ArrayList 中的方法 add(Book) 不适用于参数 (String)。
这是因为,如您所见,ArrayList<Book> bookTitle = new ArrayList<Book>();
中的泛型类型
是Book
但你添加 String
bookTitle 中的值,bookTitle.add ("Book title 1");
尝试 ArrayList<String> bookTitle = new ArrayList<String>();
如果你还想用Book
不是String
, 然后创建一个 Book
类例如:
public class Book{
private String bookName;
public Book(){}
public String getBookName() {
return bookName;
}
public void setBookName(String bookName) {
this.bookName = bookName;
}
}
然后在你的主要方法中尝试:
Book book1 = new Book();
book1.setBookName("Book title 1");
ArrayList<Book> bookTitle = new ArrayList<Book>();
bookTitle.add (book1);
for(Book b :bookTitle){
System.out.println(b.getBookName());
}
注意:删除 import java.awt.print.Book;
关于java - 使用 ArrayList<Book> 存储书名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18626510/