在Java中使用Scala包对象中的vals [英] Using vals from scala package object in java
问题描述
我有一个Scala包对象,其中声明了vals.因此,我可以使用通用对象,而不必每次都导入它们.
I have a Scala package object with vals declared in it. So I can use common objects without each time importing all of them.
但是,我也想在Java中使用这些定义,但是Java不允许导入称为包"的任何东西,这是Scala创建的类的名称.
However, I'd like to use these definitions in Java also, however Java does not allow importing of anything called 'package' which is the name of the class created by Scala.
有没有解决的办法,我可以拥有这些包对象并将其导入Java
Is there a way around this, that I can have these package objects and import them into Java
更新 遵循了公认的解决方案.但是,为可读性添加了一个中间类:
Update Followed the accepted solution. However, added an intermediate class for readability:
package.scala:
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());
}
}
推荐答案
尝试一下
ex.scala.package.scala:
ex.scala.package.scala:
package ex
package object scala {
def one = 1
}
ex.java.Test.java:
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());
}
}
这篇关于在Java中使用Scala包对象中的vals的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!