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 のサブクラスです
サブクラスに書き込まれたメソッドにアクセスする必要があるプログラムを作成しようとしていますが、サブクラスをスーパークラスにキャストバックできないため、これはコンパイルされません。メソッド呼び出し変換による)
現時点では、オブジェクトを動的に取得できるようにコードを実装する別の方法がわかりません。ほとんどの場合、サブクラスに対して呼び出されるメソッドはスーパークラスに含まれていますが、各サブクラスにはそれに関連するメソッドがいくつかあります。
修正できる設計上の欠陥はありますか。