ich habe:Scala Klasse Casting
var className = "scala.collection.immutable.List"
val clazz = Class.forName(className)
val value = ArrayBuffer(1, 2, 3)
so die Frage ist, wie Wert Klasse zu werfen, wenn classname Variable ist? Ich kann tun
nichtvalue.asInstanceOf[clazz.type]
aber ich
value.toList
und es macht den Job mit implizite Konvertierung Methode aufrufen kann, aber wie kann ich diese Methode finden und aufrufen können, wenn classname Variable ist?
Parameter in 'asInstanceOf' kann nicht mit einer Variablen dargestellt werden, es ist eine Kompilierzeiteinheit. 'clazz.type'-Wert OTOH existiert nur zur Laufzeit. –
Danke, Kappe. Die Frage ist, wie man ArrayBuffer (1, 2, 3) zur Laufzeit in List umwandelt, wenn ich nur className habe ... –
Ich denke nicht, dass es klug ist, was du tust, aber hier ist es: https: // docs. oracle.com/javase/7/docs/api/java/lang/Class.html#cast(java.lang.Object) –