2012-08-09 18 views
1

可能重复:
Accessing scala object fields from java斯卡拉“对象”变量不可见从Java?

我有这样的斯卡拉对象

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

确实是重复的。对不起,但我无法通过谷歌搜索找到答案:( – 2012-08-09 16:38:38

回答

2

尝试

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

斯卡拉使得私人领域,并提供了 “吸气” 方法(使用相同的名称)进行访问。

1

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

+0

没错,该字段是私人的。 – sourcedelica 2012-08-10 15:13:27

4

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

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