用scala类实现java接口 - 类型问题

时间:2010-06-08 16:15:19

标签: scala

为什么这个编译不会? Scala 2.8.0RC3:

Java

public interface X {
    void logClick(long ts, int cId, String s, double c);
}

Scala的

class Y extends X {
  def logClick(ts: Long, cId: Int,sid: java.lang.String,c: Double) : Unit = {
  ...
  }
}

错误

class Y needs to be abstract, since method logClick in trait X of type
(ts: Long,cId: Int,s: java.lang.String,c: Double)Unit is not defined

1 个答案:

答案 0 :(得分:2)

您需要在overridelogClick的定义之前添加class Y

class Y extends X {
  override def logClick(ts: Long, cId: Int,sid: java.lang.String,c: Double) : Unit = {
  ...
  }
}

<击>
修改

由于Daniel在下面说的原因,你甚至不需要在方法之前添加override。你的代码是正确的。