1

可能重复:
从java访问scala对象字段

我有这个 scala 对象

object Foo {
  val TOTAL = 10
  def totalMethod = 10
}

当我在java代码上这样做时:

System.out.println(Foo.totalMethod());

它有效,但是当我这样做时

System.out.println(Foo.TOTAL);

它没有:

    [error] /Users/pfernand/Projects/foo/Whatever.java:23: cannot find symbol
    [error] symbol  : variable TOTAL
    [error] location: class Foo
    [error]         System.out.println(Foo.TOTAL);
    [error]     
4

3 回答 3

4

Scala 编译器生成一个带有字段名称的无参数方法。您可以使用

System.out.println(Foo.TOTAL());
于 2012-08-09T16:27:27.033 回答
2

尝试

System.out.println(Foo.TOTAL());

Scala 将字段设为私有并提供“getter”方法(使用相同的名称)进行访问。

于 2012-08-09T16:26:40.560 回答
1

以上将创建一个 getter,您应该可以使用Foo.TOTAL(). 无法直接从 Java、AFAIK 访问该字段。

于 2012-08-09T16:26:57.040 回答