如何将无类型的java.util.List转换为Scala 2.8缓冲区

前端之家收集整理的这篇文章主要介绍了如何将无类型的java.util.List转换为Scala 2.8缓冲区前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我必须调用一些返回无类型 java.util.List的 Java代码,我似乎无法将其转换为Scala 2.8列表,而不会出现编译器borking,并出现以下错误
[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列表.如何转换无类型列表?

解决方法

我想你只需要把它变成正确的类型.
val modules: Buffer[AnyRef] = 
  FeedEntry.getModules.asInstanceOf[java.util.List[AnyRef]]

Scala可以从那里获取它并应用JavaConversions的隐式转换将其包装为Scala集合.

猜你在找的Java相关文章