有什么方法可以选择在下面使用 asJavaIterable 吗?我知道我可以拼出该特定的函数名称,但我想知道是否可以声明性地指定我想要的类型。我也很好奇为什么 asJavaIterable 不优先于 asJavaCollection。
scala> import scala.collection.JavaConversions._
import scala.collection.JavaConversions._
scala> Iterable(0,1):java.lang.Iterable[Int]
<console>:11: error: type mismatch;
found : Iterable[Int]
required: java.lang.Iterable[Int]
Note that implicit conversions are not applicable because they are ambiguous:
both method asJavaIterable in object JavaConversions of type [A](i: Iterable[A])java.lang.Iterable[A]
and method asJavaCollection in object JavaConversions of type [A](i: Iterable[A])java.util.Collection[A]
are possible conversion functions from Iterable[Int] to java.lang.Iterable[Int]
Iterable(0,1):java.lang.Iterable[Int]
^
可以限制导入的范围,以便asJavaCollection
将不被考虑:
import scala.collection.JavaConversions.{asJavaCollection=>_,_}
这表示“导入 JavaConversions 的所有成员,除了 asJavaCollection”。
不过,我认为最好进口JavaConverters
并使您的转换明确。
import scala.collection.JavaConverters._
Iterable(0,1).asJava
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)