2011-01-07 84 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

相关问题