gpt4 book ai didi

java - Eclipse Java 中的 Scala 对象嵌套类

转载 作者:搜寻专家 更新时间:2023-11-01 03:42:55 25 4
gpt4 key购买 nike

在使用 Eclipse IDE 时,我无法从 Java 代码引用 Scala 类。所讨论的 Scala 类嵌套在 Scala 对象结构中。当尝试在 Java 代码中使用该类时,Eclipse 提示使用二进制名称。

下面是定义感兴趣类的 Scala 代码示例(Inner):

package mypackage;

object Outer {
object Middle {
class Inner {
def msg() {
println("Running");
}
}
}
}

要在 Java 代码中使用 Inner 类,我使用以下代码:

mypackage.Outer$Middle$Inner inner = new mypackage.Outer$Middle$Inner();
inner.msg();

但是,Eclipse (Indigo) 编译器在第一行提示以下消息:

The nested type mypackage.Outer$Middle$Inner cannot be referenced using its binary name

有趣的是,上面的 Java 代码在与 NetBeans 6.9.1 一起使用时可以正常工作。

这是 Eclipse 编译器的问题吗?是否有任何标志允许使用二进制名称?或者,这是 Scala 的问题还是我使用它的方式?

最佳答案

无法从 Java 访问深度嵌套的对象。无论是来自 Eclipse、命令行还是任何构建工具。字节码翻译丢失了嵌套信息。

Eclipse 不允许您使用$ 名称,因此它会报错。如果您关心 Java 互操作性,则应该在边界处坚持使用类似 Java 的 Scala。顶级类、纯特征或抽象类、无高阶方法等。

关于java - Eclipse Java 中的 Scala 对象嵌套类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10207149/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com