我在使用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的值。