我有以下代码:
class SomeIterator<T> extends AbstractIterator<T> { ... }
AbstractIterator
guava类提供了{@code Iterator}接口的基本实现。因此它扩展了UnmodifiableIterator<E>
哪些实现Iterator<E>
但是当我尝试投射这样的东西时:
Set<Object> hashSet = new HashSet<Object>();
SomeIterator iterator = (SomeIterator) hashSet.iterator();
我有一个例外:
ClassCastException: java.util.HashMap$KeyIterator cannot be cast to com.google.common.collect.AbstractIterator
我的代码有什么问题?
谢谢你的帮助!
HashSet
的迭代器实际上是以下类型:
HashMap$KeyIterator
延伸
HashMap$HashIterator
实施
Iterator
如您所见,番石榴AbstractIterator
显然不在该继承链中。因此,您无法施展它。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句