サンバ:
私は、メトリックデータを解析する方法を書いて、最初にある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
パターンは真と偽の値に一致しながら、しかし、その後、私はエラーを得ました: pattern type is incompatible with expected type, found: Boolean, required: java.lang.Boolean
私が理解する限りScalaは2つの暗黙の変換をチェーンしません。JavaConvertersを使用して、それを修正する方法はありますか?
アンディ・ヘイデン:
使用している場合/他のではなく、ブールチェックのための一致ステートメント:
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
、ここで)に強制変換することができますBoolean
を経由してimport scala.collection.JavaConverters._
...しかし、試合の文が同じ強制を行いませんが、明示的に行わなければならない(または上一致しjava.lang.Boolean
た値) 。