java - 将 HashMap 与子类一起使用

标签 java inheritance hashmap

 private HashMap<String, SuperClass> mapOfRoles = new HashMap();
 public void X()
  {
        mapOfRoles.put(String, SubClassA);
        mapOfRoles.put(String, SubClassB);
  }

错误:找不到 put(String,Wolf) 的合适方法 playerRolesMap.put(listOfPlayers.get(0), new Wolf(listOfPlayers.get(0))); 方法 HashMap.put(String,Role) 不适用 (实参Wolf无法通过方法调用转换转换为Role)

其中 Wolf 是 Role 的子类

我正在尝试编写一个程序,我需要访问写入子类的方法,但是这不会编译,因为子类无法转换回父类(super class),编译器说:实际参数 subclassA 不能是通过方法调用转换转换为父类(super class))

目前我看不到另一种方法来实现我的代码以便能够动态检索对象。大多数时候,子类调用的方法都包含在父类(super class)中,但是每个子类都有一些仅与其相关的方法。

是否存在可以纠正的设计缺陷。

最佳答案

当然是你can do what you are trying 。但是,您应该将 StringSubClass1SubClass2实例放入 map 中。

关于java - 将 HashMap 与子类一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14459510/

相关文章:

java - 使用 Java 8 : Map<String, 基于对象的属性从 Map<String, Set<Object>> 中设置 <Object>> 进行过滤

java - 查找两个字符串的交集,其中返回两个字符串中出现的字符(与第一个字符串的序列顺序相同)

java - 初始化 JButton 引用类型的二维数组

java - 如何迭代两个列表并比较其中的项目?

java - 奇数表现(盒装整数)

java - Jprofiler Agent安装报错Centos 7

c++ - "using"关键字是否可以继承较少的功能?

CSS 继承 : applying selector for itself and every descendant

java - HashMap 与数组搜索时间复杂度

scala - 使用带有一些基类、抽象类或特征参数化列表的类型类的最佳方法