0
我目前有这样的:斯卡拉TypeTag反射返回类型T
def stringToOtherType[T: TypeTag](str: String): T = {
if (typeOf[T] =:= typeOf[String])
str.asInstanceOf[T]
else if (typeOf[T] =:= typeOf[Int])
str.toInt.asInstanceOf[T]
else
throw new IllegalStateException()
我真的想没有.asInstanceOf [T]如果可能的话(运行时)。这可能吗?删除asInstanceOf给了我一种Any,这是合理的,但是由于我们使用了反射并且确信我返回了一个T类型的值,我不明白为什么我们不能将T作为返回类型即使我们在运行时使用反射。没有asInstanceOf [T]的代码块永远不会是T.