你能用Java声明无参数方法在Scala中使用吗?

Edo*_*chi 5 java getter setter scala

在Scala中,我们可以使用无参数方法,这对于DSL目的非常有用; 它们还用于为类字段自动定义getter.

我正在开发一个Java库,我想尽可能地与Scala无缝集成.我想知道是否有办法用空参数列表注释Java方法,以便Scala将其识别为无参数.

例如

class Foo {
  @ParameterLess
  public String[] bar() { return someArray; }
}
Run Code Online (Sandbox Code Playgroud)

所以在Scala我能做到:

val f = new Foo
f bar (0)
Run Code Online (Sandbox Code Playgroud)

没有编译器抱怨bar()有一个空参数列表?

或者,有没有办法从Java定义Scala风格的getter和setter?

注意:当然我知道在这个特定的例子中我可以通过定义解决问题

public String bar(int i) { return someArray[i]; }
Run Code Online (Sandbox Code Playgroud)

Edo*_*chi 1

这可能回答了我的问题:

\n\n

Java 类中的 Scala getter 和 setter

\n\n

答案是你不能,除非你诉诸一些涉及特质的技巧。好吧,我想某种注释 \xc3\xa0 la@scala.reflect.BeanProperty将是一个有用的改进。

\n