Sor*_*ona 0 java collections scala scala-java-interop
我导入了这个:
import scala.collection.JavaConversions._
val size: Int = blubb.getSize
var fields: ArrayBuffer[Field] = new ArrayBuffer[Field]
size match
{
case 1 => fields.append(field)
case 2 => fields = field.getNeighbours)
}
Run Code Online (Sandbox Code Playgroud)
现在getNeighbours返回一个java.util.ArrayList而不是一个ArrayBuffer(它是一个我无法控制的Java类).
编译说
ArrayList [Field]类型的表达式不符合预期类型ArrayBuffer [Field]
JavaConversions不应该处理这个吗?如何轻松地将ArrayList转换为ArrayBuffer?(我不想在Scala代码中用ArrayList替换ArrayBuffer!)
An ArrayBuffer
是一个特定的实现Buffer
,由一个支持Array
.你不能得到一个ArrayBuffer
支持ArrayList
.
JavaConversions
为您提供从包装转换java.util.List
到Buffer
(不ArrayBuffer
).
要么将fields
变量重新键入为a Buffer[Field]
,要么必须将其元素复制ArrayList
为新变量ArrayBuffer
:
fields = ArrayBuffer(field.getNeighours: _*)
Run Code Online (Sandbox Code Playgroud)