Ich habe ein Scala-Objekt, das ich in einer Java-Klasse verwenden muss.
Hier ist das Scala-Objekt
object Person {
val MALE = "m"
val FEMALE = "f"
}
Wie kann ich dieses Scala-Objekt in Java verwenden?
Ich habe bisher erfolglos folgendes ausprobiert (Kompilierfehler):
Person.MALE()
// gibt einen unbrauchbaren String zurück, da ich das eigentliche Person-Objekt haben möchteVerwenden Sie Person$.MODULE$
. Siehe auch
Edit : Ein Arbeitsbeispiel (ich habe es überprüft, kompiliert und funktioniert): Scala:
object Person {
val MALE = "m";
}
Java-Gegenstück:
public class Test {
Person$ myvar = Person$.MODULE$;
public static void main(String argv[]) {
System.out.println(new Test().myvar.MALE());
}
}
Falls Sie einen package object
verwenden, ist der Zugriff etwas anders
Scala:
package my.scala.package
package object Person {
val MALE = "m";
}
Java-Gegenstück:
public static void main() {
System.out.println(my.scala.package.Person.package$.MODULE$.MALE);
}