如何使用arraylist值声明类名?

时间:2017-05-01 06:57:31

标签: java

我是java的新手,我试图将ArrayList的值声明为类名。 但是我无法弄清楚如何去做。

以下是我打算做的一些例子。 (书是有一些构造函数的类);

        ArrList.add("bookNum"+i);
        Book ArrList.get(i) = new Book("title", (int)price,"author");

有什么方法吗?

为什么我尝试这样做是因为有很多名字会被输入,我想立即动态地制作每个实例。

1 个答案:

答案 0 :(得分:0)

您似乎在询问如何在Java中创建动态变量。这是不可能的。 Java不支持动态变量。

也许你想要这样的东西:

int bookID = 1;

Map<String, Book> books = new HashMap<>();
while (...) {
    ...
    Book book = new Book(title, price, author);
    books.put("book-" + (bookID++), book);
}

Book temp = books.get("book-42");
System.out.println("Book 42 is " + temp.getTitle());

如您所见,Map允许记录多个名称 - &gt;书籍映射,它还允许我们按名称查找书籍。这与您在Java中的动态变量的接近程度。

现在你可以使用ArrayList ......但那将是一个错误。 List只是举行。它不会将事物(例如姓名)与其他事物(例如书籍)联系起来。要表示关联(或关系),您需要使用Map

请注意,这只是一个启动器。有关详细信息,请阅读MapHashMap的javadoc。特别是,请阅读如果get操作无法找到密钥会发生什么......