将java.util.Map转换为Scala列表[NewObject]
我有一个java.util.Map[String,MyObject],并希望创建一个Scala列表[MyNewObject],其中包含映射的所有条目以及一些特殊值 我找到了一个方法,但这真的很难看:将java.util.Map转换为Scala列表[NewObject],scala,Scala,我有一个java.util.Map[String,MyObject],并希望创建一个Scala列表[MyNewObject],其中包含映射的所有条目以及一些特殊值 我找到了一个方法,但这真的很难看: val result = ListBuffer[MyNewObject]() myJavaUtilMap.forEach ( (es: Entry[String, MyObject]) => { result += MyNewObject(es.getKey(), ey
val result = ListBuffer[MyNewObject]()
myJavaUtilMap.forEach
(
(es: Entry[String, MyObject]) =>
{ result += MyNewObject(es.getKey(), ey.getValue().getMyParameter); println("Aa")}
)
我怎样才能摆脱println(“Aa”)?仅仅删除并没有帮助,因为foreach需要一个使用者,但+=操作会生成一个列表
是否有一种更优雅的方式将java.util.Map转换为列表[MyNewObject]?Scala的转换为您提供了java集合上Scala集合API的所有优秀方法:
import collection.JavaConversions._
val result = myJavaUtilMap.map{
case (k,v) => MyNewObject(k, v.getMyParameter)
}.toList
顺便说一下:要定义返回单位的函数,可以显式指定返回类型:
val f = (x: Int) => x: Unit
Scala的转换为您提供了Java集合上Scala集合API的所有优秀方法:
import collection.JavaConversions._
val result = myJavaUtilMap.map{
case (k,v) => MyNewObject(k, v.getMyParameter)
}.toList
顺便说一下:要定义返回单位的函数,可以显式指定返回类型:
val f = (x: Int) => x: Unit
您应该推荐Java转换器,而不是Java转换。您应该推荐Java转换器,而不是Java转换。