我在使用Object作为值在Java中执行HashTable时遇到了一些问题。 所以,我有一个名为“Bonus”的超类,我得到了一些名为HammerBonus,BombBonus等的子类。 我创建了这样的HashTable:
private Hashtable<String, Bonus> hashBonusElement= new Hashtable<String, Bonus>();
但是现在我不能将任何子类添加为值,例如:
hashBonusElement.put(Hammer.class.getSimpleName(), HammerBonus);
它说“HammerBonus无法解析为变量”。
我尝试过像“(Bonus)HammerBonus”,“HammerBonus.class”这样的东西,但没有任何作用...... 我能做些什么让它起作用吗?
提前感谢您的帮助!
答案 0 :(得分:1)
这是因为您将类名作为值添加到HashMap ..
试试这个
hashBonusElement.put(Hammer.class.getSimpleName(), new HammerBonus());
将创建一个HammerBonus的新实例,作为值添加到HashMap。