如何将Scala Seq传递给Java varargs
我有一个现有的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)
我怎样才能通过辩论
# 1 楼答案
我无法在Scala2.10.4和Java8上重现这一点,但它似乎是一个bug
通过添加以下Java方法,可以避免
: _*
:在Scala代码中,您可以这样称呼它:
# 2 楼答案
对我来说就是这样
# 3 楼答案
这就成功了: