我有以下代码:
class SomeIterator<T> extends AbstractIterator<T> { ... }
AbstractIterator
番石榴类提供了{@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
显然不在该继承链中。因此,您无法施展它。