Im czytanie tej strony http://www.scala-lang.org/node/137, rozumiem co kowariancji jest i dolne granice, jak również, ale to, co nie jest jasne, czy to linia:granice Scala niższy typ i kowariancji
Niestety, ten program nie kompiluje, ponieważ Adnotacja kowariancji jest możliwa tylko wtedy, gdy zmienna typu jest używana tylko w kowariantnych pozycjach . Ponieważ zmienna typu T pojawia się jako typ parametru metody przedawnienia, ta reguła jest zepsuta.
dlaczego elem
musi być instancją supertypem z T
, jeśli ListNode
jest już kowariantna dlaczego elem
nie może zostać dołączona do bieżącej listy.
Wyjaśnienie jest dość proste. Zmienna typu T pojawia się jako typ parametru. To nie jest stanowisko kowariantne. Co dokładnie stanowi problem? –