реализация интерфейса Java с классом Scala - проблема типа - PullRequest
6 голосов
/ 08 июня 2010

С какой стати это не скомпилируется?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 Ответ

2 голосов
/ 08 июня 2010

Вам необходимо добавить override перед определением logClick в class Y.

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


РЕДАКТИРОВАТЬ:

По той причине, что Даниэль сказал ниже, вам даже не нужно добавлять override перед методом.Ваш код верен как есть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...