使用无界通配符等将Scala类型集合转换为Java。集合<! - ? - >

时间:2010-08-10 10:22:05

标签: java generics collections scala

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

...

Collection<?> getItemPropertyIds()

...

我的解决方案是使用 ...<here goes Iterable>.asInstanceOf[java.util.Collection[_]]

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

有更好的解决方案吗?也许是因为Predef的暗示?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

我也试着这个:

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