4

ツリークラス、、ClassAClassBありClassCます。ClassAおよびClassB extends ClassCMultimap<ClassC>をマージしCollection、さまざまなタイプのオブジェクトを作成しました。私はこのオブジェクトを取得したいのですが、このオブジェクトCollectionを区別する方法は?私は作成し、メソッドCollection<? super ClassC> coll = multimap.get(key)を使用してこのオブジェクトを取得したいと思いましたが、trnasformオブジェクトのタイプを区別する方法がわかりません。アドバイスをいただけますか?私はすべての助けに感謝します。

4

1 に答える 1

4

それの音によって、あなたは実際にあなたが望むタイプにコレクションをフィルターする必要があります:

Collection<? super ClassC> coll = multimap.get(key);

Iterable<ClassA> classAs = Iterables.filter(coll, ClassA.class);
Iterable<ClassB> classBs = Iterables.filter(coll, ClassB.class);

オーバーロードを使用して@EtienneNeveuから更新するIterables.filter(Iterable<?> unfiltered, Class<T> type)と、元の回答のタイプの問題がすべて削除されます。

于 2013-02-19T09:26:08.603 に答える