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

发布于 2024-10-11 02:15:47 字数 621 浏览 1 评论 0原文

我必须调用一些返回非类型化 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 列表。如何转换非类型化列表?

I have to call some Java library code that returns an untyped java.util.List and I can't seem to convert this into a Scala 2.8 list without the compiler borking with the following error:

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

I've tried both the normal

import scala.collection.JavaConversions._

val modules: Buffer[AnyRef] = feedEntry.getModules

as the explicit

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

I know the type of the items in the list and I've tried setting that as the type of the Buffer but I keep getting the same error.

I've looked around but all the documentation assumes the Java list to be typed. How do I convert untyped lists ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

美人如玉 2024-10-18 02:15:47

我认为你只需将其转换为正确的类型即可。

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

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

I think you'll just have to cast it to the right type.

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

Scala can take it from there and apply the implicit conversion from JavaConversions to wrap it as a Scala collection.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文