【发布时间】:2011-04-14 16:35:17
【问题描述】:
我正在尝试解决模式匹配中的类型擦除问题。假设:
import java.io._
trait Serializer[V] {
def save(os: OutputStream, v: V): Unit
def load(in: InputStream): V
}
trait HasSerializer[V] { def serializer: Serializer[V] }
如何在没有警告和asInstanceOf 的情况下编译它:
def test[V](os: OutputStream, v: V): Unit = v match {
case hs: HasSerializer[V] => hs.serializer.save(os, v)
case _ => ???
}
? test 是使用映射中的值调用的,无法提供类清单。
可能有什么花哨的提取技巧吗?
【问题讨论】:
标签: scala pattern-matching type-erasure