我有一個需要在Java類中使用的Scala對象。如何在Java中使用Scala單例對象?
這裏是斯卡拉對象
object Person {
val MALE = "m"
val FEMALE = "f"
}
如何使用Java中此斯卡拉對象?
我曾嘗試以下至今沒有成功(編譯錯誤):
Person.MALE()
//返回一個字符串,因爲我想實際Person對象
我有一個需要在Java類中使用的Scala對象。如何在Java中使用Scala單例對象?
這裏是斯卡拉對象
object Person {
val MALE = "m"
val FEMALE = "f"
}
如何使用Java中此斯卡拉對象?
我曾嘗試以下至今沒有成功(編譯錯誤):
Person.MALE()
//返回一個字符串,因爲我想實際Person對象使用Person$.MODULE$
這是無用的。另請參見
編輯:一個工作示例(我查了一下,它編譯和作品): 斯卡拉:
object Person {
val MALE = "m";
}
的Java counterp藝術:
public class Test {
Person$ myvar = Person$.MODULE$;
public static void main(String argv[]) {
System.out.println(new Test().myvar.MALE());
}
}
這也不是真的有效。 Eclipse告訴我: ** Person $無法解析爲變量'code ** 並且代碼不能編譯 – user786045
@ user786045,您需要手動爲Person $添加一個導入語句。 Eclipse不會在「組織導入」中自動添加它。 –
如果你使用package object
,訪問不同的是有點
斯卡拉:
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);
}
可能重複[如何選擇我在Java中傳遞一個Scala對象引用?](http://stackoverflow.com/questions/3845737/how-can-i-pass-a-scala-object-reference -around-in-java) –