简体   繁体   English

如何使用JavaConversions将Map的迭代器从Java转换为Scala

[英]How to Convert Map's Iterator from Java to Scala using JavaConversions

I use Scala 2.10.3. 我使用Scala 2.10.3。
I have result.iterator() returning Iterator<java.util.Map<String, Object>> . 我有result.iterator()返回Iterator<java.util.Map<String, Object>> (in Java so) (在Java中如此)

I want to convert it to the Scala equivalent. 我想将其转换为Scala等效项。
I use import scala.collection.JavaConversions._ to try to do the trick. 我使用import scala.collection.JavaConversions._尝试解决问题。

However it seems that it is unable to take into account type parameters, in this case, it can convert java.util.Iterator to the Scala equivalent, but fails to convert java.util.Map in the Scala equivalent. 但是,似乎它无法考虑类型参数,在这种情况下,它可以将java.util.Iterator转换为Scala等效项,但是无法将java.util.Map转换为Scala等效项。

Indeed, a compiler error occurs at this line: 确实,在这一行发生编译器错误:

val results: Iterator[Map[String, AnyRef]] = result.iterator()

    type mismatch;
     found   : java.util.Iterator[java.util.Map[String,Object]]
     required: scala.collection.Iterator[scala.collection.immutable.Map[String,AnyRef]]
     val results: Iterator[Map[String, AnyRef]] = result.iterator()
                                                                ^

Is there a short way to do the trick? 有一种简单的方法可以解决这个问题吗?

You could explicitly specify what you want to convert using JavaConverters instead of JavaConversions like this: 您可以使用JavaConverters而不是如下所示的JavaConversions明确指定要转换的JavaConversions

import scala.collection.JavaConverters._
def javaIt: java.util.Iterator[java.util.Map[String, Object]] = ???

def scalaIt = javaIt.asScala map {_.asScala}
// Iterator[scala.collection.mutable.Map[String,Object]]

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 JVM:Scala的JavaConversions如何在Java代码中运行? - JVM: How does Scala's JavaConversions work inside Java code? Java-&gt; Scala移除迭代器 <T> -来自JavaConversions包装的Iterable的元素 - Java->Scala Remove Iterator<T>-Element from a JavaConversions-wrapped Iterable 使用JavaConversions在Java和Scala集合之间进行隐式转换 - Implicit conversion between java and scala collections using JavaConversions Auto conversion between scala and java collections when using scala.collection.JavaConversions._ in scala 2.8 - Auto conversion between scala and java collections when using scala.collection.JavaConversions._ in scala 2.8 如何从java.util.Map转换为Scala Map - How to convert from from java.util.Map to a Scala Map 如何使用Java将Scala不可变映射转换为JSON? - How to convert scala immutable map to JSON using Java? 如何将Iterator [int]转换为scala中每个bin的频率的映射 - How to convert an Iterator[int] to a map with frequency per bin in scala 如何将java 8 map,filter和streams转换为scala? - How to convert java 8 map, filter and streams to scala? 如何在scala中将Iterator [Long]转换为Iterator [String] - how to convert a Iterator[Long] to Iterator[String] in scala 如何从 scala Iterator[T] 转换为 Option[T] - How to convert from scala Iterator[T] to Option[T]
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM