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)
| 归档时间: |
|
| 查看次数: |
650 次 |
| 最近记录: |