我已导入此内容:
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类)。
编译说
ArrayList [Field]类型的表达式不符合预期类型 ArrayBuffer [领域
JavaConversions不应该解决这个问题吗?如何轻松地将ArrayList转换为ArrayBuffer? (我不想在Scala代码中用ArrayList替换ArrayBuffer!)
答案 0 :(得分:5)
RenamedProperty
是[Bind(Prefix = GetOverviewResponse.NameOf(m => m.TheProperty))]
的特定实现,由ArrayBuffer
支持。您不能拥有Buffer
支持的Array
。
ArrayBuffer
为您提供从ArrayList
到JavaConversions
(不是java.util.List
)的换行转换。
您要将Buffer
变量重新键入ArrayBuffer
,或者必须将<{1}}的元素复制到新fields
:
Buffer[Field]
答案 1 :(得分:0)
因为ArrayBuffer不是ArrayList。 sjrd建议使用内置转换的javas,但你也可以使用for循环将数据从arraylist复制到新的ArrayBuffer,然后传递它。