我在 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/