我在java游戏中有大约7,000个游戏块。每个部分都扩展了一个名为Card
的基础对象。每件作品都有不同的属性(它可以做什么)。
答案 0 :(得分:0)
我认为你想要实现的是这个
作为用户类型卡号1,创建一个新对象,其特定属性设置为“卡号1”。因此,一旦用户为卡片输入一些名称,就创建一个新对象
String userInput= req.getParamter("cardSeq");
Card card1 = new Card();
card1.setName(userInput)
虽然回答非常简单,但我认为你正在努力实现。
答案 1 :(得分:0)
如果每张卡都有一个类文件,并且您想在调用时创建一个新对象,那么您想要的不需要涉及哈希表。做这样的事情(以编程方式实例化一个类):
import java.lang.reflect.*;
import java.lang.reflect.Constructor.*;
String cardName = <whatever>
Card newCard = Class.forName(cardName).getDeclaredConstructor().newInstance();
如果游戏块由对象表示,而不是类文件(即,您没有7,000个不同的类文件),则每张卡应具有name
字段。在这种情况下,您可能会使用其名称作为键将它们全部放在哈希映射中。然后,当您想要制作特定类型的新卡时,检索其对象并调用clone()
。
答案 2 :(得分:0)
您已经知道从7000张卡HashMap中获取卡的最佳方法。 出于与同步相关的原因,请使用HashMap而不是HashTable。
并且要记得正确覆盖hashCode和equals方法。