1

宿題に取り組んでいますが、何が間違っていたのかわかりません。

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());

    }

}

このコードでは、3 つの bookTitle.add 行で次のエラーが表示されます。

それで、私はこれを試しました:

Book book1 = new Book("Book title");
        bookTitle.add (book1);

これにより、「コンストラクタ Book(String) は未定義です」というエラーが表示されました。

私はJavaの初心者なので、おそらく非常に基本的なエラーを実行していて、それを認識していないことに注意してください。

あなたの助けと時間に感謝します。

4

2 に答える 2

5

ArrayList 型のメソッド add(Book) は、引数 (文字列) には適用されません。

ArrayList<Book> bookTitle = new ArrayList<Book>(); これは、ジェネリックが is に入力されていることがわかるように、bookTitle に値Bookを追加しているためです。StringbookTitle.add ("Book title 1");

試すArrayList<String> bookTitle = new ArrayList<String>();

Bookそれでもnotを使用したい場合は、クラス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;

于 2013-09-05T01:52:20.963 に答える
2

コンストラクタ Book(String) は未定義です

String をパラメーターとして受け取るクラス Book でコンストラクターを定義する必要があります。

例えば:

class Book{

private String bookName;

public Book(String bookName){
 this.bookName=bookName;
}

}

アップデート

@Josh コメントの後、 import をインポートしていることに気付きますjava.awt.print.Book;。あなたは確かに独自のBook実装をインポートしたいので、その行を削除して正しいものをインポートしてください!!

于 2013-09-05T01:52:37.130 に答える