【发布时间】:2015-01-04 23:51:08
【问题描述】:
我正在使用 scala 开发一个 java 库。
我得到了这样的东西:
def myFunc(): Thing[Iterable[T]] = {
// call java lib for the result
...
javaResult // Problem: it's Thing[java.lang.Iterable[T]]
}
所以你看到问题是java事物的返回类型是Thing[java.lang.Iterable[T]]。我试过导入 scala.collection.JavaConverters._ 但这不起作用。请注意,我无权访问 java 库,也无法提取该可迭代对象然后用 scala 重构一个 Thing 对象。
我可以将返回类型注释为java.lang.Iterable,但由于 scala 和 java 旨在协同工作,我想知道是否有某种方法可以优雅地解决这个问题?
【问题讨论】:
-
如果没有
Thing的详细信息,您将无法解决此问题。如果它是 monad(或类似 monad 的结构),只需调用map(_.asScala)即可。 -
Nitpick:Scala 旨在与 Java 一起使用,反之亦然;)
标签: java scala compatibility