5

Scala では、パラメーターのないメソッドを使用できます。これは、DSL の目的で非常に役立ちます。また、クラス フィールドのゲッターを自動定義するためにも使用されます。

可能な限り Scala とシームレスに統合したい Java ライブラリを開発しています。Scala がそれをパラメーターなしとして認識できるように、空のパラメーター リストで Java メソッドに注釈を付ける方法があるかどうか疑問に思っていました。

例えば

class Foo {
  @ParameterLess
  public String[] bar() { return someArray; }
}

Scalaで私ができるように:

val f = new Foo
f bar (0)

bar() に空の引数リストがあることについてコンパイラーに文句を言わせずに?

あるいは、Java から Scala スタイルのゲッターとセッターを定義する方法はありますか?

注:もちろん、この特定の例では、定義することで問題を回避できることを知っています

public String bar(int i) { return someArray[i]; }
4

1 に答える 1

1

これはおそらく私の質問に答えます:

Java クラスの Scala ゲッターとセッター

答えは、特性を含むいくつかのトリックに頼らない限り、できないということです。まあ、ある種の注釈のような@scala.reflect.BeanPropertyものは有用な改善になると思います。

于 2012-08-14T13:22:03.847 に答える