番石榴:Iterables转换方法用法

时间:2013-02-19 09:15:59

标签: java guava

我有树类ClassAClassBClassCClassAClassB extends ClassC。我合并了Multimap<ClassC&gt;我有Collection个不同类型的对象。我希望从Collection获取这些对象但是如何区分这些对象?我创建了Collection<? super ClassC> coll = multimap.get(key),我希望使用trnasform方法获取此对象,但我不知道如何区分对象的类型。你能给我一些建议吗?我感谢每一个帮助。

1 个答案:

答案 0 :(得分:4)

听起来,你实际上需要将集合过滤到你想要的类型:

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

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

使用重载Iterables.filter(Iterable<?> unfiltered, Class<T> type)从@EtienneNeveu更新,删除了原始答案的任何类型问题。