2010-03-13 165 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