5

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

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

例如

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

这样在 Scala 中我可以做到:

val f = new Foo
f bar (0)

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

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

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

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

1 回答 1

1

这可能回答了我的问题:

Java类中的Scala getter和setter

答案是你不能,除非你使用一些涉及特征的诡计。好吧,我想某种注释 à la@scala.reflect.BeanProperty会是一个有用的改进。

于 2012-08-14T13:22:03.847 回答