我有一个Java接口 Writer 定义如下:
public interface Writer<K, V> {
Iterator<Product2<K, V>> iterator ();
}
我试图在Scala类 ExternalWriter 中实现此接口,如下所示:
private class ExternalWriter[K, V, C]
extends Logging
with Writer[K, V] {
override def iterator(): Iterator[Product2[K, C]] = {
partitionedIterator.flatMap(pair => pair._2)
}
}
但是当我尝试编译这段代码时,我收到一个错误:
错误:在特性SortShuffleFileWriter中覆盖方法迭代器类型()Iterator [Product2 [K,V]];方法迭代器具有不兼容的类型覆盖def iterator():Iterator [Product2 [K,C]] = {
我该如何解决?
2 回答
为什么要将
V
更改为C
?你的覆盖方法应该是,
如果你想使用
C
,那么你应该用C
实现Writer
,尝试使用java.util.Iterator替换scala类中的Iterator,因为scala Iterator和java Iterator是不同的 .
以上将是修改后的代码 .