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

时间:2012-08-14 12:57:04

标签: java scala setter getter

在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]; }

1 个答案:

答案 0 :(得分:1)

这可能回答了我的问题:

Scala getters and setters in Java class

答案是你不能,除非你诉诸一些涉及特征的诡计。好吧,我想某种注释({1}}是一种有用的改进。