Scala“对象”变量在java中不可见吗?
可能重复: 我有这个scala对象Scala“对象”变量在java中不可见吗?,java,scala,scala-java-interop,Java,Scala,Scala Java Interop,可能重复: 我有这个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 f
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]
试一试
Scala将字段设置为私有,并提供使用相同名称的getter方法进行访问。试试看
Scala将字段设置为私有,并提供使用相同名称的getter方法进行访问。上述操作将创建一个getter,您应该能够使用Foo.TOTAL访问该getter。无法直接从Java、AFAIK访问该字段。以上内容将创建一个getter,您应该能够使用Foo.TOTAL访问该getter。AFAIK无法直接从Java访问该字段。Scala编译器生成一个带有字段名称的无参数方法。 你可以用
System.out.println(Foo.TOTAL());
Scala编译器使用字段名生成一个无参数方法。 你可以用
System.out.println(Foo.TOTAL());
确实是复制品。对不起,我在谷歌上找不到答案:这确实是一个副本。对不起,我在谷歌上找不到答案:没错,这个字段是私有的。没错,这个字段是私有的。