猿问

将“字符串*”(斯卡拉)转换为/从“字符串...”(爪哇)

我正在将一些弹性搜索 Java API 转换为斯卡拉。Java中有一些方法采用类型的变量,所以我试图提供一个带有类型变量的Scala函数,它封装了该Java方法。我没有找到转换为.String... indicesindices: String*String*String...

感谢您的帮助。


慕运维8079593
浏览 83回答 2
2回答

拉风的咖菲猫

Scala与Java vararg函数进行互操作,所以如果你知道参数,你可以提供它们。但是斯卡拉将作为斯卡拉通过。但是,您需要展开其中的内容并将其作为参数提供给 Java 函数。String*SeqSeqScala 有一个特殊的语法,用于指定 应展开 a 的内容并将其传递给函数。在 .Seq: _*Seq所以,它应该是这样的:def myScalaFunction( args : String* ) : Unit = {    javaStringVaragsFunction( args : _* ) }试一试吧!

慕容森

这应该有效:javaMethod(args: _*)例:val args = Array("1", "2") String.format("%s %s", args: _*)
随时随地看视频慕课网APP

相关分类

Java
我要回答