4

我有树ClassAClassBClassC. ClassAClassB extends ClassC。我已经合并了Multimap<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 回答