Ich möchte eine Funktion wie folgt schreiben:Wie kann ich eine Funktion schreiben, die eine Case-Anweisung mit einem generischen Typ ausführt?
def genericCase[T]() : PartialFunction[Any, T] = {
case Wrapper(_, item: T) => item
case Wrapper(item: T, _) => item
}
In Worten, ich einen Weg wollen die Struktur einer Musterübereinstimmung mit verschiedenen Arten wieder zu verwenden.
Der Compiler teilt mir mit, dass die case x: T
aufgrund der Typlöschung nie übereinstimmen wird. Was ist eine Alternative, um diese allgemeine Fallanweisung zu erstellen? Ich habe auch versucht, Typen in der Reflect-API als Argument für die Funktion zu verwenden, aber das konnten wir nicht herausfinden.