Scala 2.8隐式Java集合转换

3

我在使用2.8 beta版本的JavaConversions时遇到了问题:

import scala.collection.JavaConversions._
class Utils(dbFile : File, sep: String) extends IUtils {
    (...)
    def getFeatures() : java.util.List[String] =  csv.attributes.toList
}

然后出现异常:

[INFO]  Utils.scala:20: error: type mismatch;
[INFO]  found   : List[String]
[INFO]  required: java.util.List[String]
[INFO]   def getFeatures() : java.util.List[String] =  csv.attributes.toList
[INFO]          
1个回答

8
JavaConversions不支持在scala List(不可变的递归数据结构)和java List(可变序列)之间进行转换。在scala中的类似物是缓冲区:

scaladoc中可以看到:

支持以下转换:
scala.collection.mutable.Buffer <=> java.util.List

您可能需要更改您的代码:

def getFeatures() : java.util.List[String] 
    = new ListBuffer[String] ++ csv.attributes.toList

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接