我写了一个解析Metrics数据的方法,一开始遇到了一个transactionMap类型的问题,它是一个java.util.Map。我用JavaConverters解决了这个问题。
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解决这个问题?
发布于 2019-02-25 06:08:39
使用if/else而不是match语句进行布尔检查:
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值)。
https://stackoverflow.com/questions/54856780
复制相似问题