[英]How can I use a Scala singleton object in Java?
I have a Scala object that I need to use in a Java class. 我有一个Scala对象,我需要在Java类中使用。
Here's the Scala object 这是Scala对象
object Person {
val MALE = "m"
val FEMALE = "f"
}
How can I use this Scala object in Java? 如何在Java中使用此Scala对象?
I have tried the following so far without success (compile errors): 到目前为止我没有成功尝试过以下内容(编译错误):
Person.MALE()
//returns a String which is useless as I want the actual Person object Person.MALE()
//返回一个没用的String,因为我想要实际的Person对象 Use Person$.MODULE$
. 使用
Person$.MODULE$
。 See also 也可以看看
Edit : A working example (I checked, it compiles and works): Scala: 编辑 :一个工作示例(我检查,它编译和工作):Scala:
object Person {
val MALE = "m";
}
Java counterpart: Java对应物:
public class Test {
Person$ myvar = Person$.MODULE$;
public static void main(String argv[]) {
System.out.println(new Test().myvar.MALE());
}
}
In case you use a package object
, the access is a bit different 如果您使用
package object
,访问会有所不同
Scala: 斯卡拉:
package my.scala.package
package object Person {
val MALE = "m";
}
Java counterpart: Java对应物:
public static void main() {
System.out.println(my.scala.package.Person.package$.MODULE$.MALE);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.