java - 使用 ArrayList<Book> 存储书名

标签 java arraylist

我正在做家庭作业,但无法弄清楚我做错了什么。

我正在尝试使用 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/

相关文章:

java - For-each并分配给二维数组Java

java - 在 matlab 和 java 中读取 .wav 信号

java - 如何在Java中基于SAS Token访问Azure WASB容器?

Java Streams 方法不影响我的 ArrayList?

java - list.add(element) 不支持的操作异常

Java:将 ArrayList 项与用户输入字符串进行比较

java - 如何在点击服务器并等待响应时在android中放置一个线程安全的进度条?

java - mysql空指针异常

java - 根据字段对 ArrayList 进行排序?

java - Arraylist和JTextArea显示问题