首页 > 解决方案 > 从迭代器转换到迭代器,其中 T 是 U 的子类

问题描述

标签: javagenerics

解决方案


我同意,我看不出它有任何不安全的理由。

我相信

Iterator<U> it2 = (Iterator) it;

应该足以使演员表编译,但如果你想要它而不发出警告,你仍然必须抑制警告。如果您了解警告的原因并且知道它不适用于这种情况,则抑制警告是可以的。

也许您使用的任何需要 a 的代码都Iterator<U>应该被重构以接受Iterator<? extends U>


推荐阅读