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

您能在Java中声明无参数方法以在Scala中使用吗?,java,scala,setter,getter,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)

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

这可能回答了我的问题:


答案是你不能,除非你采取一些涉及性格特征的诡计。好吧,我想某种注释a
@scala.reflect.BeanProperty将是一种有用的改进。

您尝试过bar(Object…os)吗?您需要在示例中调用
f bar()(0)
,以便编译器能够区分参数和数组索引。当然。我想知道是否有办法向Scala提示
bar()
应该充当
bar