我是 Scala 新手,所以请容忍我的代码中的任何错误。我正在尝试重新设计一些给我的 Scala 代码。当我尝试使用 Java 继承时,我遇到类型不匹配的问题;发现错误在 Eclipse 中突出显示。
我正在使用 sbt 生成 eclipse 工件,并且能够在 eclipse 中导入该项目。下面给出了出现错误的代码。
界面:
public interface InnerClassGen {
static public interface IFactory {
InnerInter innerInt = null;
/** A String giving the canonical value of symbol. */
//@ pure
Integer value();
@Override
String toString();
}
}
public class InnerClassImpl implements InnerClassGen {
static public class Node implements IFactory{
@Override
public Integer value() {
// TODO Auto-generated method stub
return null;
}
}
}
相关的 Scala 文件:
object SMTExprVisitor {
protected var NODE: InnerClassGen.IFactory = new InnerClassImpl.Node()
}
class SMTExprVisitor{
.....
}
我想知道我错在哪里。有人还可以向我指出相关链接吗?
最佳答案
一般来说,您应该始终只将 SBT(或直接 scalac)产生的编译错误视为真实错误。由于语言的复杂性以及与编译器的集成有限,Scala IDE 既可以在代码没有错误时将其突出显示为有错误,也无法找到确实存在的错误。
虽然 Eclipse 在这方面应该比 IDEA/Android Studio 更好,因为它使用 "presentation compiler"它扩展了主 Scala 编译器,显然您仍然遇到它无法处理的情况。
关于Scala 中的 Java 继承类导致类型不匹配错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54460435/