我是java的新手,我试图将ArrayList的值声明为类名。 但是我无法弄清楚如何去做。
以下是我打算做的一些例子。 (书是有一些构造函数的类);
ArrList.add("bookNum"+i);
Book ArrList.get(i) = new Book("title", (int)price,"author");
有什么方法吗?
为什么我尝试这样做是因为有很多名字会被输入,我想立即动态地制作每个实例。
答案 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
。
请注意,这只是一个启动器。有关详细信息,请阅读Map
和HashMap
的javadoc。特别是,请阅读如果get
操作无法找到密钥会发生什么......