Ich versuche, eine Möglichkeit zu schaffen, Tage zu einem LocalDate-Objekt in Scala durch implizite Klassen hinzuzufügen, aber ich bekomme ständig einen Fehler entweder "LocalDate ist eine letzte Klasse und kann nicht erweitert werden" oder darunter:Scala implizite finale Klasse
scala:73: could not find implicit value for parameter year: Int
Hier ist der Code, den ich versucht mit:
implicit class UVMLocalDate(val me: Int) extends AnyVal{
implicit def days(implicit year: Int, month: Int, day: Int) {
LocalDate.of(year,month,me + days)
}
}
ich die Klasse verhalten zu haben, wie so eingeschränkt bin:
(LocalDate.of(2015, 4, 14)) == (LocalDate.of(2015, 4, 12) + 2.days)
Beispiel für die Verwendung:
val dateEx = LocalDate.of(2015, 3, 23) + 2.days
assert(dateEx == LocalDate.of(2015, 3, 25))
Dank
Verwenden Sie java.time? In diesem Fall können Sie nicht zwei 'LocalDates' zusammenfügen. Es bietet auch keine Scala '+' Methode. –
Auch Sie nehmen 3 implizite Int-Argumente zu Ihrer "days" -Methode, implizite Argumente werden nach Typ aufgelöst, so dass Sie immer den gleichen Wert für alle 3 Argumente hätten. –
Ich kann nicht viel Verbindung zwischen der eingefügten impliziten Klasse und der Art finden, wie sie sich verhalten soll. – pedrofurla