【问题标题】:Unable to override method from base class from Java library in Scala无法覆盖 Scala 中 Java 库中基类的方法
【发布时间】:2015-05-21 16:30:19
【问题描述】:

我正在尝试从 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] = {
          ...
     }
}

我不断收到的错误是:

类 ClassA 中的重写方法 foo (x$1: someLibrary.TypeX, x$2: Array[String])java.util.List[someLibrary.TypeY];方法 foo 有 不兼容的类型

请注意,我的方法签名完全相同。

编辑: 阅读 Ren 的回答后,我是这样解决的:

import scala.collection.JavaConverters._
myScalaList.asJava

【问题讨论】:

    标签: scala


    【解决方案1】:

    可能是原始方法返回一个 java.util.List,而您的覆盖返回一个 Scala 列表。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-09
      • 2015-02-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多