将Java List更改为Scala Seq?

时间:2018-03-15 10:15:04

标签: scala

我的配置中有以下列表:

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

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

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

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

markets.toSeq

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

我想要序列,无论我使用的配置库是什么。我不想在JavaConverters

中使用陈述的详细解决方案

2 个答案:

答案 0 :(得分: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 :(得分:1)

是。只需导入隐式转换:

import java.util

import scala.collection.JavaConversions._

val jlist = new util.ArrayList[String]()
jlist.toSeq