使用ArrayList <Book>存储书名

Chr*_*phe 1 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());

    }

}
Run Code Online (Sandbox Code Playgroud)

这段代码在三个bookTitle.add行上给出了以下错误:"ArrayList类型中的方法add(Book)不适用于参数(String)"

那么我试过这个:

Book book1 = new Book("Book title");
        bookTitle.add (book1);
Run Code Online (Sandbox Code Playgroud)

这给了我一个"构造函数Book(String)未定义"错误.

请记住,我是Java的菜鸟,所以我可能正在做一些非常基本的错误而没有意识到这一点.

非常感谢您的帮助和时间.

gjm*_*an2 5

ArrayList类型中的方法add(Book)不适用于参数(String).

这是因为,你可以看到在你的泛型类型ArrayList<Book> bookTitle = new ArrayList<Book>(); 就是Book但你添加String在BOOKTITLE价值,bookTitle.add ("Book title 1");

尝试 ArrayList<String> bookTitle = new ArrayList<String>();

如果您仍想使用Booknot String,则创建一个Book类,例如:

public class Book{
private String bookName;

public Book(){}

    public String getBookName() {
        return bookName;
    }

    public void setBookName(String bookName) {
        this.bookName = bookName;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后在你的主要方法尝试:

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());
        }
Run Code Online (Sandbox Code Playgroud)

注意:删除 import java.awt.print.Book;