gpt4 book ai didi

Scala Array[String] 到 Java String varargs

转载 作者:行者123 更新时间:2023-12-04 23:15:47 25 4
gpt4 key购买 nike

我有一些 Scala 代码需要调用定义如下的 Java 7 方法:

public void addListener(InputListener listener, String... mappingNames) {
<details omitted here for brevity>
}

这是我调用 addListener 的 Scala 代码:
inputManager.addListener(myListener, getActionInputs())

// Then the getActionInputs method:
def getActionInputs() : Array[String] = {
Array("Red", "Fruit", "Cow")
}

这会产生编译器错误:

Type mistmatch, expected: String, actual: Array[String]



我尝试导入 Java/Scala 转换类来转换我的 Scala Array[String]到一个 Java 数组,但没有成功。关于修复是什么的任何想法?

最佳答案

您需要添加 :_*改造 Array[String]可变参数:

java :

public class C {
public void addListener(String... mappingNames) {
System.out.println(Arrays.toString(mappingNames));
}
}

斯卡拉:
def main(args: Array[String]): Unit = {
val c = new C
c.addListener(Array("a", "b", "c") :_*)
}

产量:
[a, b, c]

关于Scala Array[String] 到 Java String varargs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42907323/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com