在类中创建了一些公共静态对象,并希望将它们放入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);
}
答案 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)