2011-01-07 30 views
7

我必須調用一些返回一個無類型的java.util.List的Java庫代碼,我似乎無法將其轉換爲Scala 2.8列表而無需編譯器,下面的錯誤borking:如何將一個無類型的java.util.List轉換爲一個Scala 2.8緩衝區

[INFO] found : java.util.List[?0] where type ?0 
[INFO] required: java.util.List[AnyRef] 
[INFO]  val modules: Buffer[AnyRef] = asScalaBuffer(feedEntry.getModules) 

我都試過正常

import scala.collection.JavaConversions._ 

val modules: Buffer[AnyRef] = feedEntry.getModules 

爲明確

val modules: Buffer[AnyRef] = asScalaBuffer(feedEntry.getModules) 

我知道列表中的項目的類型,我試着將其設置爲緩衝區的類型,但我一直得到相同的錯誤。

我查了一下,但所有的文檔都假設要輸入Java列表。我如何轉換無類型列表?

回答

6

我認爲你只需要將它轉換爲正確的類型。

val modules: Buffer[AnyRef] = 
    feedEntry.getModules.asInstanceOf[java.util.List[AnyRef]] 

斯卡拉可以從那裏和從JavaConversions應用隱式轉換,以把它包裝成一個斯卡拉集合。

+0

謝謝,這的確有竅門 – 2011-01-07 18:02:26

相關問題