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 からフィールドに直接アクセスする方法はありません。

于 2012-08-09T16:26:57.040 に答える