gpt4 book ai didi

java - 从 Java 调用可变长度参数 Scala 函数的语法?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:12:29 31 4
gpt4 key购买 nike

我有一个 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 ListItem 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/

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