In dem Versuch, Spark zu bewerten, um unsere bestehenden benutzerdefinierten Eingabeformate aus der mapreduce-Ära wieder zu verwenden, bin ich auf ein Java-Generika-Problem gestoßen. import com.google
Nach Kovarianz Definition: Q [+ B] bedeutet, dass Q jede Klasse nehmen, aber wenn A ist eine Unterklasse von B, dann Q [A] gilt als sein Unterklasse von Q [B]. Lassen sich das folgende Beispiel sehen:
Ich habe einen Selbst rekursiven Typ: trait Problem[P <: Problem[P]] {
type Solution
}
Jetzt will ich Match Muster auf P#Solution. Nehmen wir an, wir im case class Foo[P <: Problem[P]]() sind:
Ich habe eine Seq[(A, B)]. Ich wollte eine implizite Methode zu solchen Sammlungen hinzufügen, so dass ich .toMultiMap tun kann, um eine Map[A, Seq[B]] zurück zu bekommen. Dies war mein erster Versuch