Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Scala和util.Iterator[\ux]_Java_Scala_Types_Interface_Typeerror - Fatal编程技术网

Java Scala和util.Iterator[\ux]

Java Scala和util.Iterator[\ux],java,scala,types,interface,typeerror,Java,Scala,Types,Interface,Typeerror,我正在使用scala中的java库,我需要实现一个接口,这需要我实现java的Iterable接口 当我尝试使用或不使用JavaConversion实现它时,它告诉我覆盖迭代器的方法:java.util.iterator的类型是错误的,即使该方法的类型是java.util.iterator 作为旁注,这可能是因为接口要求我返回一个未指定类型的迭代器吗?以下内容在REPL中起作用: import java.lang.Iterable import java.util.Iterator class

我正在使用scala中的java库,我需要实现一个接口,这需要我实现java的Iterable接口

当我尝试使用或不使用JavaConversion实现它时,它告诉我覆盖迭代器的方法:java.util.iterator的类型是错误的,即使该方法的类型是java.util.iterator


作为旁注,这可能是因为接口要求我返回一个未指定类型的迭代器吗?

以下内容在REPL中起作用:

import java.lang.Iterable
import java.util.Iterator

class A extends Iterable[String] {
    override def iterator(): Iterator[String] = null
}

请注意,迭代器需要返回迭代器,而不是Iterable,令人困惑的是,Iterable在包java.lang中,而迭代器在java.util中。

这不是问题所在。父类指定一个非类型化的迭代器,实际上是迭代器。如果输入了迭代器,我就不会遇到问题。作为参考,继承链如下所示:Java接口Iterable->Java接口组件扩展Iterable无类型->Scala类ScalaComponent扩展组件。因此,ScalaComponent具有覆盖def迭代器:util.iterator[\ux]。这会导致编译器错误。请参阅即兴和Daniel Sobral对链接问题的回答。