【发布时间】:2013-12-21 17:39:10
【问题描述】:
我正在使用 Scala 2.10 编写一个通用值解析器。 输入是一个字符串,输出是一个泛型类型,由用户给出。
我唯一能想到的就是
val StringTYPE = classOf[java.lang.String]
def parseValue[T: ClassTag](str: String): T = {
implicitly[ClassTag[T]].runtimeClass match {
case java.lang.Integer.TYPE => str.toInt.asInstanceOf[T]
case java.lang.Long.TYPE => str.toLong.asInstanceOf[T]
case StringTYPE => str.asInstanceOf[T]
case _ => throw new Exception("Unknown type")
}
}
但这似乎很冗长和复杂,所以我想知道有没有更简单的方法可以做到这一点?
【问题讨论】: