ツリークラス、、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 に答える