【问题标题】:Why is this object coming up as "unknown class" in this ArrayList? [closed]为什么这个对象在这个 ArrayList 中作为“未知类”出现? [关闭]
【发布时间】:2019-08-15 04:06:42
【问题描述】:

在类中创建了一些公共静态对象,并希望将它们放入 ArrayList。当我使用 .add() 方法将对象添加到列表中时,我收到一个错误,即对象的类是未知的。我会用书来方便看。

我想把我所有的书和书单放在 Book 类中,这样我的主类就不会被它们填满。这就是我将它们设为公开和静态的原因 - 这样我就可以在需要它们时调用它们。

用于编译列表的代码在 main 方法中运行良好,但由于某种原因,当我将它带到 Book 类时,它给了我 bookA、bookB 和 bookC 上的下划线,并出现错误“Unknown Class”

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

}

【问题讨论】:

  • Book类型的静态变量吗?您尚未在代码示例中指定类型。
  • 你的意思是public static bookA = new Book("Book A");
  • 甚至public static Book bookA = new Book("Book A");...?
  • @blafasel 在这里修复了这些东西——把它们放在我的个人代码上。谢谢。
  • @Reimus 现在是正确的

标签: java arrays list object arraylist


【解决方案1】:

你还没有importedListArrayList

【讨论】:

  • 在我的个人代码中,忘记在这里了。谢谢。
【解决方案2】:

尝试将对象的创建和添加到列表中,到类 Book 中的方法中。 Java 不允许在类中使用随机代码。

例如:

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

它们需要在一个方法中。

【讨论】:

    【解决方案3】:

    您的代码需要在方法或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);
    }
    

    【讨论】:

    • 静态块对我有用!谢谢,我的头仍然围绕着整个 main(String[] args) { 事情。
    • @Jonathan 主要方法是能够执行代码、程序的方法,如果没有具有此签名的方法,您将无法启动 anuting
    • @Jonathan 如果您觉得可以,请毫不犹豫地接受答案 ;)
    【解决方案4】:

    你为什么不试试这样的:

    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;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-25
      • 2016-09-07
      相关资源
      最近更新 更多