gpt4 book ai didi

java - 无法将返回的 java.util.ArrayList 分配给 scala.collection.mutable.ArrayBuffer。为什么?

转载 作者:行者123 更新时间:2023-12-01 16:56:47 25 4
gpt4 key购买 nike

我导入了这个:

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)
}

现在 getNeighbours 返回一个 java.util.ArrayList 而不是 ArrayBuffer(它是一个我无法控制的 Java 类)。

编译器说

Expression of type ArrayList[Field] doesn't conform to expected type ArrayBuffer[Field]

JavaConversions 不应该处理这个问题吗?如何轻松地将 ArrayList 转换为 ArrayBuffer? (我不想在 Scala 代码中用 ArrayList 替换 ArrayBuffer!)

最佳答案

ArrayBufferBuffer 的特定实现,由 Array 支持。您不能拥有 ArrayBufferArrayList 支持.

JavaConversions为您提供从 java.util.List 的换行转换至Buffer (不是ArrayBuffer)。

要么重新输入您的 fields变量为 Buffer[Field] ,或者您必须复制 ArrayList 的元素到一个新的ArrayBuffer :

fields = ArrayBuffer(field.getNeighours: _*)

关于java - 无法将返回的 java.util.ArrayList 分配给 scala.collection.mutable.ArrayBuffer。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31616111/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com