解决Scala中模糊的隐式转换
发布时间:2020-12-16 19:20:34 所属栏目:安全 来源:网络整理
导读:有什么方法可以选择在下面使用as JavaIterable?我知道我可以拼出那个特定的函数名称,但我想知道我是否可以明确地指定我想要的类型.我也很好奇为什么asJavaIterable没有优先于asJavaCollection. scala import scala.collection.JavaConversions._import scal
有什么方法可以选择在下面使用as
JavaIterable?我知道我可以拼出那个特定的函数名称,但我想知道我是否可以明确地指定我想要的类型.我也很好奇为什么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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |