我正在将一些Elasticsearch Java API转换为Scala。 Java中有一些方法采用String... indices
类型的变量,所以我试图提供一个带有indices: String*
类型的变量的Scala函数,它封装了Java方法。我没有找到将String*
转换为String...
的方法。
我感谢您的帮助。
Scala与Java vararg函数互操作,所以如果你知道参数,你可以提供它们。
但Scala String*
将作为Scala Seq
出现。但是你需要展开那个Seq
的内容并作为Java函数的参数提供。
Scala有一个特殊的语法,用于指定Seq
的内容应该展开并传递给函数。你在: _*
的名字后面写Seq
。
所以,它应该是这样的:
def myScalaFunction( args : String* ) : Unit = {
javaStringVaragsFunction( args : _* )
}
试试看!
这应该工作:
javaMethod(args: _*)
例:
val args = Array("1", "2")
String.format("%s %s", args: _*)