Скажите, у меня есть List
из Int
с
scala> val list = List(1, 2, 3, 4, 5)
list: List[Int] = List(1, 2, 3, 4, 5)
Конечно, Scala достаточно умен, чтобы вернуть правильный тип для меня. Теперь, учитывая, что меня не интересуют особенности List
, я скорее хочу иметь более общий (супер) тип, скажем, Traversable
. Очевидно, я могу указать это:
scala> val trav = list: Traversable[Int]
trav: Traversable[Int] = List(1, 2, 3, 4, 5)
но это означает, что я также должен повторить параметр типа.
Это не сработает
scala> list : Traversable
<console>:9: error: type Traversable takes type parameters
list : Traversable
^
И эти два примера вообще удаляют информацию о параметре типа
scala> list : Traversable[T forSome {type T}]
res2: Traversable[T forSome { type T }] = List(1, 2, 3, 4, 5)
scala> list : Traversable[_]
res3: Traversable[Any] = List(1, 2, 3, 4, 5)
Есть ли способ получить Traversable[Int]
без необходимости набирать Int
?