我必须调用一些返回无类型java.util.List的Java库代码,我似乎无法将其转换为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列表。如何转换无类型列表?
答案 0 :(得分:6)
我认为你只需将其转换为正确的类型。
val modules: Buffer[AnyRef] =
feedEntry.getModules.asInstanceOf[java.util.List[AnyRef]]
Scala可以从那里获取它并应用JavaConversions
的隐式转换将其包装为Scala集合。