java - 在 Scala 中使用 Java 接口(interface)时,编译器提示方法未实现

标签 java scala inheritance interface scala-2.10

我在 Scala 类中使用 Java 接口(interface)时遇到问题。问题就在这里。

首先,这是简化的 Java 接口(interface):

java.util.concurrent.TimeUnit;
import Message;

public interface JavaInterface {
   public Message get(int param1, Long param2, TimeUnit unit);
}

然后,我有一个 Scala 类尝试使用这个接口(interface)

java.util.concurrent.TimeUnit
import Message

class ScalaClass extends JavaInterface {
    def get(param1:Int, param2: Long, unit:TimeUnit):Message = {
         new Message("Just a test")
    }
}

但是当它编译时,Scala 编译器一直提示 ScalaClass 中没有实现 get() 函数:

类 ScalaClass 需要是抽象的,因为: [错误] 它有 1 个未实现的成员。 [error]/** 从 ScalaClass 类中可以看出,缺少的签名如下。 [错误] * 为了方便起见,这些可用作 stub 实现。 [错误] */ [错误] def get(x$1: Int,x$2: Long,x$3: java.util.concurrent.TimeUnit):Message = ???

我怀疑这可能是因为 Scala 不喜欢 Java int,但我无法让它工作,有人有什么想法吗?

谢谢 是

最佳答案

Int 很好

scala> classOf[Int]
res0: Class[Int] = int

但是不是

scala> classOf[Long]
res3: Class[Long] = long

尝试使用

def get(param1:Int, param2: java.lang.Long, unit:TimeUnit): Message =
  new Message("Just a test")

关于java - 在 Scala 中使用 Java 接口(interface)时,编译器提示方法未实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25818698/

相关文章:

java - Java中的日期运算?

java - Kotlin 如何在包含在 Lambda 中时指定返回标签

java - Hibernate/JPA OneToOne 共享 key ,无生成值

list - Currying:追加两个列表

java - Scala 隐式转换未应用于 Java 参数模式

java - 创建可在整个android项目中使用的Settings类

python - child 调用 parent , parent 调用 child ......或不

java - 具有许多子类的依赖注入(inject)

java - 有没有一种简单的方法可以在 java 中使用 ASCII 下降对 ArrayList<> 进行排序?

scala - 调用 Spark-Submit 时,JodaTime 出现 scala 和 Spark 问题