我正在使用的Jedis调用返回一个Set,尽管在运行时它实际上是一个LinkedHashSet。我想将它拉入Scala,反序列化元素,然后返回Seq。
答案 0 :(得分:3)
容易!
import collection.JavaConverters._
val theJavaSet = methodReturningLinkedHashSet()
theJavaSet.asScala.toSeq
我也倾向于避免JavaConversions
(除非受旧版Scala限制)。 JavaConverters
可提供更多控制,并且可以避免在更复杂的情况下可能出现的几个问题。
答案 1 :(得分:0)
凯文说,但没有输入错误,在2.8.1或更高版本:
val javaSet: java.util.Set[String] = new java.util.LinkedHashSet[String]()
javaSet.add("a")
javaSet.add("b")
import collection.JavaConverters._
javaSet.asScala.toSeq
// res2: Seq[String] = ArrayBuffer(a, b)
或(也适用于2.8.0):
import collection.JavaConversions._
javaSet.toSeq