Ci sono due parti per la risposta. La prima parte è che i metodi di argomenti variabili di Scala che prendono un T * sono un metodo di sovrascrittura che richiede Seq [T]. Dite a Scala di trattare un Seq [T] come una lista di argomenti invece di un singolo argomento usando "seq: _ *".
La seconda parte converte una raccolta [T] in una Seq [T]. Non c'è ancora un modo generale per farlo nelle librerie standard di Scala, ma un modo molto facile (anche se non necessariamente efficiente) è di chiamare aArray. Ecco un esempio completo.
scala> val lst : java.util.Collection[String] = new java.util.ArrayList
lst: java.util.Collection[String] = []
scala> lst add "hello"
res0: Boolean = true
scala> lst add "world"
res1: Boolean = true
scala> Set(lst.toArray : _*)
res2: scala.collection.immutable.Set[java.lang.Object] = Set(hello, world)
Nota scala.Predef.Set e scala.collection.immutable.HashSet sono sinonimi.
fonte
2009-03-23 18:36:47
Come si è visto che non può farlo perché la mia collezione "interna" è in realtà un esempio di java.util. Elenco, non un Seq Scala. Ho fatto questa domanda come un seguito: http://stackoverflow.com/questions/674713/converting-java-collection-into-scala-collection –