我有以下代码:

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显然不在该继承链中。因此,您无法施展它。

07-28 00:00