public abstract class Mother {
}
public class Daughter extends Mother {
}
public class Son extends Mother {
}
Map
どのキーがDaughter
またはSon
クラスの1つであり、どの値がこれら2つのクラスのいずれかのオブジェクトのリストである必要があります。
例えば:
/* 1. */ map.put(Daughter.class, new ArrayList<Daughter>()); // should compile
/* 2. */ map.put(Son.class, new ArrayList<Son>()); // should compile
/* 3. */ map.put(Daughter.class, new ArrayList<Son>()); // should not compile
/* 4. */ map.put(Son.class, new ArrayList<Daughter>()); // should not compile
試しMap<Class<T extends Mother>, List<T>>
ましたが、コンパイルされません。
Map<Class<? extends Mother>, List<? extends Mother>>
コンパイルしますが、ケース3.
と4.
コンパイルも行いますが、そうではありません。
それも可能ですか?