Как преобразовать SortedSet в Java в Seq в Scala - PullRequest
1 голос
/ 16 августа 2011

Используемый мной вызов Jedis возвращает Set, хотя во время выполнения это на самом деле LinkedHashSet.Я хочу вытащить его в Scala, десериализовать элементы и вернуть Seq.

Ответы [ 2 ]

3 голосов
/ 16 августа 2011

Легко!

import collection.JavaConverters._
val theJavaSet = methodReturningLinkedHashSet()
theJavaSet.asScala.toSeq

Я бы также старался избегать JavaConversions (если это не ограничено более старой версией Scala).JavaConverters предлагает больше контроля и защищен от пары проблем, которые могут возникнуть в более сложных сценариях.

0 голосов
/ 16 августа 2011

Как говорит Кевин, но без опечатки на 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
...