为什么此对象在此ArrayList中显示为“未知类”?

时间:2019-03-24 21:53:46

标签: java arrays list object arraylist

在类中创建了一些公共静态对象,并希望将它们放入ArrayList中。当我使用.add()方法将对象添加到列表中时,出现一个错误,提示该对象的类未知。我将使用书籍使其易于阅读。

我想将我所有的书籍和书籍清单实际存放在Book类中,这样我的主班级就不会太满。这就是为什么我将它们设为公共和静态的-因此我可以在需要时才调用它们。

用于编译列表的代码在main方法中也能正常工作,但是由于某种原因,当我将其移到Book类时,它使我在bookA,bookB和bookC上都有下划线,并且出现错误“未知类” < / p>

import.java.List;
import.java.ArrayList;

public class Book {
    String title;

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


    public static Book bookA = new Book("Book A");
    public static Book bookB = new Book("Book B");
    public static Book bookC = new Book("Book C"); 

    public static List<Book> myBooks = new ArrayList<Book>();

    myBooks.add(bookA);
    myBooks.add(bookB);
    myBooks.add(bookC);

}

4 个答案:

答案 0 :(得分:2)

您的代码必须位于方法或static块中

static{
    myBooks.add(bookA);
    myBooks.add(bookB);
    myBooks.add(bookC);
}
// or static method
public static void main(String[] args){
    myBooks.add(bookA);
    myBooks.add(bookB);
    myBooks.add(bookC);
}

答案 1 :(得分:1)

为什么不尝试这样的事情?

import java.util.ArrayList;
import java.util.List;


class GlobalBookcase {

    public static List<Book> myBooks = new ArrayList<Book>();

    public GlobalBookcase(){
        myBooks.add(new Book("Book A"));
        myBooks.add(new Book("Book B"));
        myBooks.add(new Book("Book C"));
    }
}


public class Book {
    String title;

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

答案 2 :(得分:0)

尝试将对象的创建以及它们的添加移动到列表中,以及Book类中的方法上。 Java不允许在类内使用随机代码。

例如:

myBooks.add(bookA); myBooks.add(bookB); myBooks.add(bookC);

它们必须在方法中。

答案 3 :(得分:-1)

您还没有imported ListArrayList