【发布时间】:2012-09-29 14:27:18
【问题描述】:
假设我有一个 List 或 Ints
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)
有没有无需输入Int 即可获得Traversable[Int] 的方法?
【问题讨论】:
标签: scala collections type-parameter