我有这个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]
答案 0 :(得分:4)
Scala编译器使用字段名称生成无参数方法。 你可以使用
System.out.println(Foo.TOTAL());
答案 1 :(得分:2)
尝试
System.out.println(Foo.TOTAL());
Scala将字段设为私有字段,并提供了一个" getter"方法(使用相同的名称)进行访问。
答案 2 :(得分:1)
以上内容将创建一个getter,您应该可以使用Foo.TOTAL()
进行访问。没有办法直接从Java,AFAIK访问该字段。