我正在和一个朋友一起做一个电子游戏。为了考虑不同类型的项目,我们最初为每个项目都有一个类,扩展了一个项目类。这些类中没有太多数据,所以我一直在寻找替代方案,这样我们的工作空间就不会那么混乱。我开始学习 HashMaps,我认为它们是一种很棒的添加项目的方式。我们还可以对其进行设置,这样我们就可以使用字符串访问它们,而不是使用 int 访问 HashMap 中的项目,这基本上只是使其成为一个 ArrayList。所以我开始添加这个功能,在 Item 类中创建匿名 Items,
private static Item coal = new Item() {
weight = .2;
setImageID(0, 16);
}
并将它们添加到 HashMap。
itemMap.put("Coal", coal);
在做了一些这些之后,我意识到列表中每种类型只有一个项目,如果我们想要有多个可以在不修改原始项目的情况下修改的项目,我们需要制作副本。我开始研究如何做到这一点。我们可以使用复制构造函数,但是 Item 中的变量太多,无法有效地完成。我们当然可以这样做,但我想知道是否有一个简单的解决方案。我们能把所有的项目都做成最终的吗?我只是吐口水,因为我对这个编程领域完全陌生。我们也可能做错了这件事。我只需要一种方法来使用 HashMap 来创建一些“项目数据库”,我可以使用它来访问列表中无限数量的项目。有什么建议么?