:暗黙的にjavaBigDecimal2bigDecimalが適用されないのはなぜですか? Scalaの2.9.2このコードで
BigDecimal(1) + new java.math.BigDecimal("1") new java.math.BigDecimal("1") + BigDecimal(1)
scala.math.BigDecimal $#javaBigDecimal2bigDecimalは、
しかし後者の場合には適用されないため、コンパイルされません。私は同じ暗黙の直前を定義する場合コードはコンパイルされます:
BigDecimal(1) + new java.math.BigDecimal("1") implicit def javaBigDecimal2bigDecimal(x: java.math.BigDecimal): BigDecimal = BigDecimal(x) new java.math.BigDecimal("1") + BigDecimal(1)
なぜそうですか?
はありません、私は追加しませんでした(
+(BigDecimal)
メソッドを持っている)適切な型への変換を探します最初のケースでなぜ暗黙のままであるのか不思議に思っていた – OlegYch最初のケースではコンパイラが知っているので、 'BigDecimal'が期待されているので、指定された型から' BigDecimal ' – drexin