Come posso usare un object Singleton Scala in Java?

Ho un object Scala che devo usare in una class Java.

Ecco l’object Scala

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

Come posso usare questo object Scala in Java?

Ho provato quanto segue finora senza successo (errori di compilazione):

  • Person.MALE() // restituisce una stringa che è inutile come voglio l’object Persona corrente

    Usa Person$.MODULE$ . Guarda anche

    • Come posso passare un riferimento all’object Scala in Java?
    • Singleton come classi sintetiche in Scala?

    Modifica : un esempio funzionante (ho controllato, compila e funziona): Scala:

     object Person { val MALE = "m"; } 

    Controparte Java:

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

    Nel caso in cui si usi un package object , l’accesso è leggermente diverso

    Scala:

     package my.scala.package package object Person { val MALE = "m"; } 

    Controparte Java:

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