Aufruf habe ich eine Klasseeine Covariant Methode in Scala
class Getable [+T] (val data: T)
Und ich eine Methode für die Klasse erstellen die Nummer funktioniert es drucken
def printNumber (in: Getable[Number]) = { println("It's " + in.data)}
Also für
get(new Getable(10.0))
Aber funktioniert nicht für
val g = new Getable(10.0)
get(g)
Ich erhalte diese Fehlermeldung
scala> get(g)
<console>:16: error: type mismatch;
found : Getable[Double]
required: Getable[Number]
get(g)
^
Aber die Überwindung der Fehlermeldung ist der Grund, warum wir Kovarianz verwenden.
In Scala 'Number' ist kein übergeordneter Typ von' scala.Double'. –