使用无界通配符等将 Scala 类型集合转换为 Java。 Collection

发布于 2024-09-14 01:17:30 字数 408 浏览 1 评论 0 原文

问题: 需要在 Scala 中实现来自第三方 Java 库的接口

...

Collection; getItemPropertyIds()

...

我的解决方案是使用 ....asInstanceOf[java.util.Collection[_]]

 val props:Map[Object,Property] = ...
 override def getItemPropertyIds()=props.keys.asInstanceOf[java.util.Collection[_]]

有更好的解决方案吗?也许与 Predef 的隐式有关?

Problem:
Need to implement interface from 3rd party Java library in Scala

...

Collection<?> getItemPropertyIds()

...

My solution is to use
...<here goes Iterable>.asInstanceOf[java.util.Collection[_]]

 val props:Map[Object,Property] = ...
 override def getItemPropertyIds()=props.keys.asInstanceOf[java.util.Collection[_]]

Is there better solution? Maybe with Predef's implicits?

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

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

发布评论

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

评论(2

腻橙味 2024-09-21 01:17:30

创建一些 scala.Iterable,使用 scala.collection.asJavaCollection() (可能是隐式的)转换为 java.util.Collection。

Create some scala.Iterable, use scala.collection.asJavaCollection() (may be implicitly) to convert to java.util.Collection.

梦里寻她 2024-09-21 01:17:30

我也尝试这个:

import scala.collection.JavaConversions
...
override def getItemPropertyIds() = JavaConversions.asCollection(props.keys)

I try also this:

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