将Java List更改为Scala Seq?

问题描述 投票:1回答:2

我的配置中有以下列表:

val markets = Configuration.getStringList("markets");

要创建一个序列,我写这段代码:

JavaConverters.asScalaIteratorConverter(markets.iterator()).asScala.toSeq

我希望我能以一种不那么冗长的方式做到这一点,例如:

markets.toSeq

然后从该列表中我得到序列。我将在不久的将来有更多的配置;有没有提供这种简单性的解决方案?

无论我使用哪种配置库,我都想要一个序列。我不想让JavaConverters说明详细的解决方案。

scala
2个回答
3
投票

自Scala 2.12.0起,JavaConversions已被弃用。使用JavaConverters;你可以导入scala.collection.JavaConverters._以减少冗长:

import scala.collection.JavaConverters._

val javaList = java.util.Arrays.asList("one", "two")
val scalaSeq = javaList.asScala.toSeq

1
投票

是。只需导入隐式转换:

import java.util

import scala.collection.JavaConversions._

val jlist = new util.ArrayList[String]()
jlist.toSeq
© www.soinside.com 2019 - 2024. All rights reserved.