Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

implementing java interface with scala class - type issue

Tags:

scala

Why on earth won't this compile? 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 = {
  ...
  }
}

Error

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
like image 593
paintcan Avatar asked Jun 08 '10 16:06

paintcan


1 Answers

You need to add override before the definition of logClick in class Y.

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


EDIT:

For the reason Daniel said below, you don't even need to add override before the method. Your code is right as it is.

like image 167
missingfaktor Avatar answered Oct 02 '22 08:10

missingfaktor