Scala可迭代和java可迭代

时间:2015-01-04 23:51:08

标签: java scala compatibility

我正在使用scala中的java lib。

我有这样的事情:

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 lib,因此我无法提取该iterable,然后使用scala对象重新构建Thing对象。

我可以将返回类型注释为java.lang.Iterable但是因为scala和java被设计为一起工作,我想知道是否有某种方法可以优雅地解决这个问题?

1 个答案:

答案 0 :(得分:0)

“旨在协同工作”意味着您可以返回Thing[java.lang.Iterable[T]]。 看起来它确实是你唯一的选择。