1

Ttype のクラスを typeにArrayListもマップしようとしていますT:

Map<Class<?>, ArrayList<?>> map_ = new HashMap<Class<?>, ArrayList<?>>();

Arraylist問題は、このマップから取得したアイテムにアイテムを追加できないことです:

map_.put(A.class, new ArrayList<A>());
A item = new A();
map_.get(item.getClass()).add(item); //failure!

含まれている配列リストにアクセスして追加できるように、マップを作成するにはどうすればよいですか?

4

1 に答える 1

0

宣言を次のように変更します。

Map<Class<?>, List<Object>> map_ = new HashMap<>();

Java ではa を定義できないためget 、リストからキャストする必要がありますMap<Class<T>, List<T>> forAll T。つまり、型パラメーターを関連付ける方法がないため、上記のような定義をキャストで使用して、必要なことを行う必要があります。

于 2013-01-18T02:16:40.270 に答える