Java 作为值的哈希表超类

Java 作为值的哈希表超类,java,hashtable,subclass,Java,Hashtable,Subclass,我在Java中使用对象作为值创建哈希表时遇到了一些问题。 所以,我有一个超类叫做“Bonus”,还有一些子类叫做HammerBonus,BombBonus,等等。 我创建了如下哈希表: private Hashtable<String, Bonus> hashBonusElement= new Hashtable<String, Bonus>(); 它说“Hammerbonusca不能解析为变量” 我尝试过一些东西,比如“(奖金)HammerBonus”,“Hammer

我在Java中使用对象作为值创建哈希表时遇到了一些问题。 所以,我有一个超类叫做“Bonus”,还有一些子类叫做HammerBonus,BombBonus,等等。 我创建了如下哈希表:

private Hashtable<String, Bonus> hashBonusElement= new Hashtable<String, Bonus>();
它说“Hammerbonusca不能解析为变量”

我尝试过一些东西,比如“(奖金)HammerBonus”,“HammerBonus.class”,但没有任何效果。。。 有什么我可以帮你的吗


提前感谢您的帮助

这是因为您将类名作为值添加到HashMap中

试试这个

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

将创建HammerBonus的新实例作为值添加到HashMap。

HammerBonus是
HammerBonus
类的对象吗?这是一个编译时错误。没有名为
HammerBonus
的变量。它应该是这样的
HammerBonus hb=new HammerBonus();hashBonusElement.put(Hammer.class.getSimpleName(),hb)所以我必须先创建变量,然后添加它们?为什么不能这样?我明白了。。。我需要修改一些代码,因为我没有同一个类的多个实例,但它工作了,谢谢:)谢谢。。。那起作用了。。。是不是Braj也在评论。。。谢谢:)如果你的回答与之前的任何评论相匹配,那么最好投上一票。剩下的取决于你的心情。@Braj我从来没有在我回答后刷新过我的页面。你可以稍后再做,而不是在写答案的时候。Braj。。。我正要请你把答案贴出来,因为你先解决了,我可以把你的答案标记为正确答案
hashBonusElement.put(Hammer.class.getSimpleName(), new HammerBonus());