dst*_*bbe 4 java scala package
我有一个Scala包对象,其中声明了vals。因此,我可以使用公共对象,而不必每次都导入它们。
但是,我也想在Java中使用这些定义,但是Java不允许导入任何名为“ package”的东西,这是Scala创建的类的名称。
有没有办法解决这个问题,我可以拥有这些包对象并将其导入Java
更新 遵循已接受的解决方案。但是,为可读性添加了一个中间类:
package.scala:
package nl.mysoft.scalapackage
package object easy {
val one = 1
}
Run Code Online (Sandbox Code Playgroud)
中级班:
package nl.mysoft.javapackage;
import nl.mysoft.scalapackage.easy.package$;`
public class EasyE {
public static final package$ e = package$.MODULE$;
}
Run Code Online (Sandbox Code Playgroud)
和用法:
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());
}
}
Run Code Online (Sandbox Code Playgroud)
尝试这个
ex.scala.package.scala:
package ex
package object scala {
def one = 1
}
Run Code Online (Sandbox Code Playgroud)
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());
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1647 次 |
| 最近记录: |