无法从Scala中Java库的基类重写方法
我试图从Java库扩展一个类并重写基方法,但是Eclipse不断地给我错误,即使方法签名是正确的 我的代码如下所示:无法从Scala中Java库的基类重写方法,scala,Scala,我试图从Java库扩展一个类并重写基方法,但是Eclipse不断地给我错误,即使方法签名是正确的 我的代码如下所示: import someLibrary.ClassA import someLibrary.TypeX import someLibrary.TypeY ... class MyClass extends ClassA { ... override def foo(s: TypeX, params: Array[String]): List[TypeY] = {
import someLibrary.ClassA
import someLibrary.TypeX
import someLibrary.TypeY
...
class MyClass extends ClassA {
...
override def foo(s: TypeX, params: Array[String]): List[TypeY] = {
...
}
}
我经常遇到的错误是:
重写类型为(x$1:someLibrary.TypeX)的类ClassA中的方法foo,
x$2:Array[String])java.util.List[someLibrary.TypeY];方法foo
不兼容类型
请注意,我的方法签名完全相同
编辑:
在阅读了任的答案后,以下是我如何解决的:
import scala.collection.JavaConverters._
myScalaList.asJava
可能是原始方法返回的是java.util.List,而重写返回的是Scala列表 可能是原始方法返回java.util.List,而重写返回的是Scala列表 可能是原始方法返回java.util.List,而重写返回的是Scala列表 可能是原始方法返回java.util.List,而重写返回的是Scala列表