首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Scala -如何在链接两个隐式转换时进行模式匹配?

Scala -如何在链接两个隐式转换时进行模式匹配?
EN

Stack Overflow用户
提问于 2019-02-25 05:33:20
回答 2查看 351关注 0票数 4

我写了一个解析Metrics数据的方法,一开始遇到了一个transactionMap类型的问题,它是一个java.util.Map。我用JavaConverters解决了这个问题。

代码语言:javascript
复制
def parseMetrics(metric: Metric) = {
    import scala.collection.JavaConverters._
    metric.transactionMap.asScala.values.map {
      case false => "N" 
      case true => "Y"
    }.toList

但在那之后,我在匹配true和false值时得到了一个错误:pattern type is incompatible with expected type, found: Boolean, required: java.lang.Boolean

据我所知,Scala没有链接两个隐式转换。有没有办法用JavaConverters解决这个问题?

EN

Stack Overflow用户

回答已采纳

发布于 2019-02-25 06:08:39

使用if/else而不是match语句进行布尔检查:

代码语言:javascript
复制
def parseMetrics(metric: Metric) = {
    import scala.collection.JavaConverters._
    metric.transactionMap.asScala.values.map {
      x => if (x) "Y" else "N"
    }.toList

我怀疑在if语句中,java.lang.Boolean (我假设x在这里)可以通过import scala.collection.JavaConverters._强制转换为Boolean……但是match语句不做同样的强制,但必须显式地进行(或者匹配java.lang.Boolean值)。

票数 5
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54856780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档