Scala数组[String]到Java集合[String]

Scala数组[String]到Java集合[String],scala,Scala,我有一个Scala字符串数组: val names:Array[String] = something.map(...) 我需要调用一个接受集合的Android(java) public void addAll (Collection<? extends T> collection) public void addAll(CollectionJava方法: Scala方法: 在后一种方法中,names数组首先转换为Seq[String],然后位于JavaConversions中的

我有一个Scala字符串数组:

val names:Array[String] = something.map(...)
我需要调用一个接受集合的Android(java)

public void addAll (Collection<? extends T> collection)
public void addAll(CollectionJava方法:
Scala方法:

在后一种方法中,
names
数组首先转换为
Seq[String]
,然后位于
JavaConversions
中的隐式转换指出需要Java集合,因此它可以轻松地应用必要的转换。别担心,.

JavaConversions
现在已被弃用。 您应该改用
JavaConverters

import collection.JavaConverters.asJavaCollection
val collection = asJavaCollection(Array("some value"))

谢谢,但是你所说的“Java方法”是什么意思?@Steve:我也添加了“Scala方法”:)。太好了,谢谢你的解释。你为什么选择一个而不是另一个?@DanielC.Sobral:据我所知,
Arrays.asList
创建一个包装,而
toSeq
和隐式转换-2。在这两种情况下,都不会复制数组,因此时间复杂度恒定。所以差别很小,但我同意。请你解释一下“*”背后的逻辑是什么,它起作用了,但我不明白。当您键入“name:”时,我猜您正在对名称进行操作,使用一种动态集合,然后返回它,对吗?“名称:*”返回的确切含义是什么?如果Java数组与Scala数组相同,为什么不直接工作?
import collection.JavaConversions._

val namesColl: java.util.Collection[String] = names.toSeq
import collection.JavaConverters.asJavaCollection
val collection = asJavaCollection(Array("some value"))