Scala将原语隐式转换为AnyRef
发布时间:2020-12-16 18:18:25 所属栏目:安全 来源:网络整理
导读:在我写的 Scala代码中,我有一个Map [String,AnyRef].当我尝试使用以下内容初始化Map时,Scala抱怨它期望Map [String,AnyRef],但值是Map [String,Any]: val myMap: Map[String,AnyRef] = Map("foo" - true,"bar" - false) 我知道我可以使用以下代码: val myM
在我写的
Scala代码中,我有一个Map [String,AnyRef].当我尝试使用以下内容初始化Map时,Scala抱怨它期望Map [String,AnyRef],但值是Map [String,Any]:
val myMap: Map[String,AnyRef] = Map("foo" -> true,"bar" -> false) 我知道我可以使用以下代码: val myMap: Map[String,AnyRef] = Map("foo" -> true.asInstanceOf[AnyRef],"bar" -> false.asInstanceOf[AnyRef]) 我在范围内声明了以下内容: implicit def booleanToAnyRef(value: Boolean): AnyRef = value.asInstanceOf[AnyRef] 但编译器仍然抱怨. 编译器是否应该使用隐式方法将原始布尔值转换为AnyRef值?有没有办法,缺少(丑陋的)x.asInstanceOf [AnyRef]来转换这些? 解决方法
为了记录,正如其他答案所示,最新的编译器会说:
最新的编译器将永远是一个朋友,他提供比你曾经常常和朋友一起陷入困境的朋友更好的建议. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |