【发布时间】:2014-12-18 10:17:29
【问题描述】:
我有一个 Scala 包对象,其中声明了 val。所以我可以使用常用对象,而无需每次都导入它们。
但是,我也想在 Java 中使用这些定义,但是 Java 不允许导入任何称为“包”的东西,这是 Scala 创建的类的名称。
有没有办法解决这个问题,我可以拥有这些包对象并将它们导入Java
更新 遵循公认的解决方案。但是,为了便于阅读,添加了一个中间类:
package.scala:
package nl.mysoft.scalapackage
package object easy {
val one = 1
}
中级:
package nl.mysoft.javapackage;
import nl.mysoft.scalapackage.easy.package$;`
public class EasyE {
public static final package$ e = package$.MODULE$;
}
及用法:
package nl.mysoft.javapackage.usage;
import static nl.mysoft.javapackage.EasyE.e;
public class EasyTest {
public static void main(String[] args) {
System.out.println(e.one());
}
}
【问题讨论】:
-
我正在尝试类似的东西,但在我的情况下,它不是 val,而是对象。如何访问它,你能帮我吗?尝试使用您的示例,但它不起作用。