3
ich ein Merkmal Processor
haben, die wie folgt aussieht:Wiedergabe Schreibt mit generischen Typparametern
trait Processor[A] {
def process(in: Seq[Byte]): Result[A]
}
trait Result[A]{
val ok: Boolean
val errorMessage: Option[String]
val data: Option[A]
}
Eine konkrete Umsetzung:
class StringProc extends Processor[String] {
def process(in: Seq[Byte]): StrResult
}
case class StrResult(...) extends Result[String]
object StrResult {
implicit val writes = Json.writes[StrResult]
}
Wenn eine StringProc
Instanz als Typ Processor[String]
Verwendung der Rückgabetyp process
ist nicht überraschend ist Result[String]
, nicht StrResult
. Leider scheint die Writes[StrResult]
in diesem Fall als nutzlos:
Kein Json Serializer für Typen Ergebnis [Zeichenfolge]
Wie kann ich mit dieser Situation umgehen gefunden?
Die Linie innerhalb des Objekts gibt mir _no Unapply oder unapplySeq Funktion found_. Vielleicht, weil 'Ergebnis [A]' ein Merkmal und keine Klasse ist? – ceran
Danke. Ich versuche immer noch herauszufinden, wie es funktioniert, aber es funktioniert;) Der Trick ist, dass die verschachtelten Schreibvorgänge automatisch vom Compiler bereitgestellt werden, richtig? – ceran
Es gibt keinen Trick, das ist nur die Standardmethode, mit der der implizite Bereich funktioniert. – cchantep