0
我:斯卡拉类铸件
var className = "scala.collection.immutable.List"
val clazz = Class.forName(className)
val value = ArrayBuffer(1, 2, 3)
所以问题是怎么投的价值类,如果类名是变量?我不能做
value.asInstanceOf[clazz.type]
,但我可以打电话给
value.toList
和它的工作与隐式转换的方法,但我怎么能找到并调用此方法时的className变量?
'asInstanceOf'中的参数不能用变量表示,它是编译时实体。 'clazz.type'值OTOH仅在运行时存在。 –
Thanx,cap。现在的问题是如何在运行时将ArrayBuffer(1,2,3)强制转换为List,但我只有className ... –
我不认为这是明智的,但在这里它是:https:// docs。 oracle.com/javase/7/docs/api/java/lang/Class.html#cast(java.lang.Object) –