gpt4 book ai didi

java - 如何将 Scala Seq 传递给 Java 可变参数

转载 作者:搜寻专家 更新时间:2023-10-30 21:34:58 25 4
gpt4 key购买 nike

我有一个像这样的现有 Java 方法:

public static MyJavaClass javaFunc(String name, long... values) {
...
}

我需要用这个从 Scala 调用它:

val idList: Seq[Long] = Seq(1L, 2L, 3L)

MyJavaClass.javaFunc("hello", idList)

但它最终会调用 idList 参数上的 toString 方法。我尝试了以下无济于事:

MyJavaClass.javaFunc("hello", idList:_*)

导致编译错误:

no `: _*' annotation allowed here (such annotations are only allowed in arguments to *-parameters)

如何传递参数?

最佳答案

// java class
public class MyJavaClass {
public static void javaFunc(String name, long ...values) {
for (long i: values)
System.out.print(i + " ");
System.out.println();
}
}
//scala class
object Y {
def main(args: Array[String]): Unit = {
val idList: Seq[Long] = Seq(1L, 2L, 3L)
MyJavaClass.javaFunc("hello", idList: _*)
}
}

它对我来说是这样的

关于java - 如何将 Scala Seq 传递给 Java 可变参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17115935/

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