从java访问scala对象字段

dsg*_*dsg 15 java interop scala

我无法从java访问scala对象的字段.

斯卡拉:

object TestObject {
  val field = 5 
}
Run Code Online (Sandbox Code Playgroud)

Java的:

public class JavaTest
{
  public static void main(String[] args)
  {
    int i = TestObject.field;
  }
}
Run Code Online (Sandbox Code Playgroud)

错误:

[error] JavaTest.java: cannot find symbol
[error] symbol  : variable field
[error] location: class TestObject
[error]     int i = TestObject.field;
Run Code Online (Sandbox Code Playgroud)

dsg*_*dsg 16

Scala字段是私有变量,具有相同名称的getter以保持不变性.

public class JavaTest
{
  public static void main(String[] args)
  {
    int i = TestObject.field();
  }
}
Run Code Online (Sandbox Code Playgroud)