scala 2.8暗示java集合转换

nab*_*lik 3 java scala implicit-conversion scala-2.8 scala-collections

我有使用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
}
Run Code Online (Sandbox Code Playgroud)

然后例外:

[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]          
Run Code Online (Sandbox Code Playgroud)

oxb*_*kes 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
Run Code Online (Sandbox Code Playgroud)