スカラでは、パラメータのないメソッドを使うことができます。これは、DSLの目的に非常に役立ちます。クラスフィールドのゲッターの自動定義にも使用されます。Scalaで使用するために、パラメータレスのメソッドをJavaで宣言できますか?
可能な限りScalaとシームレスに統合したいJavaライブラリを開発しています。私は、Scalaがそれをパラメータなしとして認識するように、空のパラメータリストをJavaメソッドに注釈を付ける方法があるかどうか疑問に思っていました。例えば
class Foo {
@ParameterLess
public String[] bar() { return someArray; }
}
Scalaで私が行うことができるように:
val f = new Foo
f bar (0)
を(バー文句を言うようにコンパイラを持たない)空の引数リストを持ちますか?
また、JavaからScalaスタイルのゲッターとセッターを定義する方法はありますか?
注:もちろん、私は、この特定の例では、私はこれはおそらく、私の質問に答える
public String bar(int i) { return someArray[i]; }
bar(Object ... os)を試しましたか? – Luciano
あなたの例で 'f bar()(0)'を呼び出すと、コンパイラはパラメータと配列インデックスを区別できます。 – aishwarya
もちろん。 Scalaに 'bar()'が 'bar'として動作するべきであることを暗示する方法があるかどうか疑問に思っていました –