加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-16 18:47:57 所属栏目:安全 来源:网络整理
导读:为什么这个不编译? Scala 2.8.0RC3: Java的 public interface X { void logClick(long ts,int cId,String s,double c);} 斯卡拉 class Y extends X { def logClick(ts: Long,cId: Int,sid: java.lang.String,c: Double) : Unit = { ... }} 错误 class Y ne
为什么这个不编译? Scala 2.8.0RC3:

Java的

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

斯卡拉

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,s: java.lang.String,c: Double)Unit is not defined

解决方法

您需要在类Y中定义logClick之前添加覆盖.

class Y extends X {
  override def logClick(ts: Long,c: Double) : Unit = {
  ...
  }
}

编辑:

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读