我有树类ClassA
,ClassB
和ClassC
。 ClassA
和ClassB extends ClassC
。我合并了Multimap<ClassC
&gt;我有Collection
个不同类型的对象。我希望从Collection
获取这些对象但是如何区分这些对象?我创建了Collection<? super ClassC> coll = multimap.get(key)
,我希望使用trnasform
方法获取此对象,但我不知道如何区分对象的类型。你能给我一些建议吗?我感谢每一个帮助。
答案 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更新,删除了原始答案的任何类型问题。