Scala 可迭代和 java 可迭代
Scala iterable and java iterable
我正在使用 scala 开发 java 库。
我得到了这样的东西:
def myFunc(): Thing[Iterable[T]] = {
// call java lib for the result
...
javaResult // Problem: it's Thing[java.lang.Iterable[T]]
}
所以你看到的问题是 java 东西的 return 类型是 Thing[java.lang.Iterable[T]]
。我试过导入 scala.collection.JavaConverters._
但这不起作用。请注意,我无权访问 java 库,并且我无法提取该可迭代对象,然后用 scala 重建一个 Thing 对象。
我可以将 return 类型注释为 java.lang.Iterable
但由于 scala 和 java 旨在一起工作,我想知道是否有一些方法可以优雅地解决这个问题?
"Designed to work together"就是说你可以returnThing[java.lang.Iterable[T]]
。
它看起来确实是你唯一的选择。
我正在使用 scala 开发 java 库。
我得到了这样的东西:
def myFunc(): Thing[Iterable[T]] = {
// call java lib for the result
...
javaResult // Problem: it's Thing[java.lang.Iterable[T]]
}
所以你看到的问题是 java 东西的 return 类型是 Thing[java.lang.Iterable[T]]
。我试过导入 scala.collection.JavaConverters._
但这不起作用。请注意,我无权访问 java 库,并且我无法提取该可迭代对象,然后用 scala 重建一个 Thing 对象。
我可以将 return 类型注释为 java.lang.Iterable
但由于 scala 和 java 旨在一起工作,我想知道是否有一些方法可以优雅地解决这个问题?
"Designed to work together"就是说你可以returnThing[java.lang.Iterable[T]]
。
它看起来确实是你唯一的选择。