Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Scala中实现多级Java接口_Java_Scala_Generics_Scala Java Interop - Fatal编程技术网

在Scala中实现多级Java接口

在Scala中实现多级Java接口,java,scala,generics,scala-java-interop,Java,Scala,Generics,Scala Java Interop,我的接口在java中有以下层次结构 public interface Identifiable<T extends Comparable<T>> extends Serializable { public T getId(); } public interface Function extends Identifiable { public String getId(); } public abstract class Adapter implements

我的
接口在
java
中有以下层次结构

public interface Identifiable<T extends Comparable<T>> extends Serializable {
    public T getId();
}
public interface Function extends Identifiable {
    public String getId();
}
public abstract class Adapter implements Function {
    public abstract String getId();
}
我得到以下错误

Multiple markers at this line
    - overriding method getId in trait Identifiable of type ()T; method getId has incompatible 
     type
    - overrides Adapter.getId
    - implements Function.getId
    - implements Identifiable.getId

一般来说,在Scala的java代码中处理原始类型是一件痛苦的事情

请尝试以下方法:

public interface Function extends Identifiable<String> {
    public String getId();
}
然后在Scala中使用:

scala>   class Multi extends ScalaAdapter {
     |      def getScalaId():String = "!2"
     |   }
defined class Multi

谢谢Jatin,但我不能更改Java定义,我的Java版本是1。6@Avinash更新了代码。这应该能让它起作用。其中包括一个典型的paulp响应。
public abstract class ScalaAdapter extends Adapter {

    @Override
    public String getId() {
        // TODO Auto-generated method stub
        return getScalaId();
    }

    public abstract String getScalaId();

}
scala>   class Multi extends ScalaAdapter {
     |      def getScalaId():String = "!2"
     |   }
defined class Multi