在 HashMap 中访问抽象 class 的 subclass

Access subclass of abstract class in HashMap

如果我有一个名为 map 的 HashMap 字段,我有一个名为 Slot 的枚举和一个名为 Item 的抽象 class并想访问继承自它的名为 ChairItem 的 subclass 如何从抽象 [=27] 中访问它=]?这是我的领域:

private HashMap<Slot, Item> map;

我想以某种方式访问​​它:

Chair chair = map.get(Slot.CHAIR);

但这是不可能的。我该怎么做?

如果您确定您正在访问的 Item 是一个 Chair,您可以像这样进行简单的转换:

Chair chair = (Chair) map.get(Slot.CHAIR);

如果您从地图中检索到的 Item 不是 Chair,此解决方案将在运行时抛出 ClassCastException