2010-03-13 256 views
3

我有问题,与2.8测试版JavaConversions:斯卡拉2.8隐式的Java集合转换

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]   

回答

8

JavaConversions不支持之间的斯卡拉List(不可变的,递归转换数据结构)和一个java List(一个可变序列)。在阶模拟是一个缓冲区:

scaladoc

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

您可能希望将您的代码更改为:

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

Deja-vu再次... – 2010-03-13 22:40:51