暗黙的なクラスを使用してScalaのLocalDateオブジェクトに日を追加する方法を作成しようとしていますが、「LocalDateは最終クラスであり拡張できません」というエラーが継続的に発生します。スカラ暗黙の最終クラス
scala:73: could not find implicit value for parameter year: Int
ここで私が使用してみましたコードは次のとおりです。
implicit class UVMLocalDate(val me: Int) extends AnyVal{
implicit def days(implicit year: Int, month: Int, day: Int) {
LocalDate.of(year,month,me + days)
}
}
私はそうのようなクラスの振る舞いを有することに制限されたんだ:
(LocalDate.of(2015, 4, 14)) == (LocalDate.of(2015, 4, 12) + 2.days)
使用例:あなたはscala.concurrent.duration._
とorg.joda.time._
からの機能の混合物をしたいよう
val dateEx = LocalDate.of(2015, 3, 23) + 2.days
assert(dateEx == LocalDate.of(2015, 3, 25))
おかげ
java.timeを使用していますか?その場合、2つの 'LocalDate'を一緒に追加することはできません。 Scalaの '+'メソッドも提供していません。 –
また、 "日"メソッドに3つの暗黙のInt引数を取り入れていますが、暗黙的な引数は型によって解決されるため、3つの引数すべてに常に同じ値が設定されます。 –
貼り付けられた暗黙的なクラスと、それが動作する方法との間に多少の関係が見つかりません。 – pedrofurla