在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