我有一个Scala包对象,其中声明了vals。所以我可以在没有每次导入所有对象的情况下使用公共对象。
但是,我也想在Java中使用这些定义,但Java不允许导入任何名为' package'这是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());
}
}
答案 0 :(得分:5)
试试这个
ex.scala.package.scala:
package ex
package object scala {
def one = 1
}
ex.java.Test.java:
package ex.java;
import ex.scala.package$;
public class Test {
public static void main(String[] args) {
System.out.println(package$.MODULE$.one());
}
}