2012-08-09 44 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());