我有一个 Scala 类,其构造函数采用可变长度参数列表。
case class ItemChain(items: Item*)
在 Scala 中可以这样调用
ItemChain(Item(), Item())
我想不出从 Java 调用它的语法。如果我这样做
new ItemChain(new Item(), new Item())
我收到一个编译器错误,提示此行与签名 scala.collection.seq<Item>
不匹配.
我可以直接从 Java 实例化 Scala 序列对象。
new scala.collection.Seq<Item>()
但我不知道如何随后添加我的两个 Item
它的实例。如果我创建一个 Java List
的 Item
s 并将其转换为 scala.collection.Seq
我收到运行时错误。
最佳答案
这应该可以解决问题:
import static scala.collection.JavaConverters.asScalaBufferConverter;
import static java.util.Arrays.asList;
...
new ItemChain(asScalaBufferConverter(asList(new Item(), new Item())).asScala());
关于java - 从 Java 调用可变长度参数 Scala 函数的语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25732534/