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