0
coverting
Parameter habe ich ein paar Funktionen mit den gleichen Code-Partnern wie die folgendeneine Funktion mit Funktionen wie
def updateFoo(fooId: Long, user: String): Option[Foo] = {
val fooMaybe = fooDao.getById(fooId)
fooMaybe match {
case Some(foo) =>
fooDao.update(
foo.copy(updatedBy = Some(user), validationStatus = Some(ValidationStatus.Valid))
)
case None =>
throw new Exception(s"Foo with ID: '$fooId' doesn't exist")
}
}
wo Foo einen Fall Klasse.
duplizierten Code zu reduzieren, schreibe ich die folgende Funktion von anderen Funktionen gemeinsam genutzt werden Ziel
private def doIt(f1: Long => Option[Object], parameter1: Long, f2: Object => Option[Object], paramter2: String): Option[Object] ={
val somethingMaybe = f1(parameter1)
somethingMaybe match {
case Some(something) =>
f2(
something.copy(updatedBy = Some(paramter2),
validationStatus = Some(ValidationStatus.Valid)) // <-- can't be complied
)
case None =>
throw new DomainException(s"Object with ID: '$parameter1' doesn't exist")
}
}
Ist es richtig?
Ich verpasste eine enge Klammer dort. Ich habe eine Korrektur. – TeeKai