Sie können alle Konstrukteure einer Klasse wie diese:Verwenden Sie die neue Reflection-API, um den primären Konstruktor einer Klasse zu finden?
import scala.reflect.runtime.universe._
val ctor = typeOf[SomeClass].declaration(nme.CONSTRUCTOR).asTerm.alternatives
Gibt es eine Möglichkeit zu wissen, was man den primären Konstruktor ist? Ist es immer der erste in der Liste? Was passiert, wenn SomeClass
in Java definiert ist, wo das Konzept primärer Konstruktor nicht existiert?
Hmm ... Dies funktioniert nicht innerhalb einer Compiler-Phase (Post-Typer, Pre-Pickler). Ich bekomme nur null-Objekte mit 'declaration' oder' member'. Irgendwelche Ideen? – gzm0
Fehlalarm. Es tut. Ich habe "ClassDef.tpe" anstelle von "ClassDef.symbol.tpe" übergeben – gzm0