如何在Java中使用Scala单例对象?

2022-09-01 04:28:48

我有一个 Scala 对象,我需要在 Java 类中使用。

这是 Scala 对象

object Person {
  val MALE = "m"
  val FEMALE = "f"
}

如何在Java中使用这个Scala对象?

到目前为止,我已经尝试了以下方法,但没有成功(编译错误):

  • Person.MALE()返回一个字符串,这是无用的,因为我想要实际的Person对象

答案 1

用。另请参见Person$.MODULE$


编辑:一个工作示例(我检查过,它编译并工作):Scala:

object Person {
  val MALE = "m";
}

Java 对应项:

public class Test {
    Person$ myvar = Person$.MODULE$;

    public static void main(String argv[]) {
        System.out.println(new Test().myvar.MALE());
    }
}

答案 2

如果您使用 ,则访问有点不同package object

Scala:

package my.scala.package

package object Person {
  val MALE = "m";
}

Java 对应项:

public static void main() {
  System.out.println(my.scala.package.Person.package$.MODULE$.MALE);
}

推荐