我在使用Java作为对象的HashTable时遇到一些问题。
因此,我有一个名为“ Bonus”的超类,并且有一些名为HammerBonus,BombBonus等的子类。
我已经像这样创建了HashTable:

private Hashtable<String, Bonus> hashBonusElement= new Hashtable<String, Bonus>();


但是现在我不能添加任何子类作为值,例如:

hashBonusElement.put(Hammer.class.getSimpleName(), HammerBonus);


它说“ HammerBonuscannot不能解析为变量”。

我已经尝试过类似“(Bonus)HammerBonus”,“ HammerBonus.class”之类的方法,但是没有任何效果...
我有什么可以做的呢?

预先感谢您的帮助!

最佳答案

那是因为您将Class名称作为值添加到HashMap。

尝试这个

hashBonusElement.put(Hammer.class.getSimpleName(), new HammerBonus());


将创建HammerBonus的新实例,以将其添加为HashMap的值。

09-25 20:39