【发布时间】:2012-03-01 19:43:41
【问题描述】:
假设我有以下代码
def get[T](name:String)(implicit mf:ClassManifest[T]):T = mf.erasure match {
case classOf[Boolean] => obj.getBoolean(name)
case classOf[Int] => obj.getInt(name)
}
现在代码不起作用,因为 classOf[Int] 是无效的匹配值。
【问题讨论】:
-
如果你只需要值类型,看看 ClassManifest, def fromClass[T](clazz: JClass[T]): ClassManifest[T] = clazz match { case java.lang.Byte. TYPE => Byte.asInstanceOf[ClassManifest[T]] ....