Konstruktoren und Parameter
Konstruktoren erzeugen Instanzen; Methoden und Konstruktoren teilen ResolvedParameter, der Namen, aufgelösten Typ und Annotationen eines Parameters trägt.
findConstructor und newInstance
findConstructor findet einen öffentlichen Konstruktor der Klasse über seine Parameterklassen, findDeclaredConstructor jeden, private eingeschlossen. newInstance übergibt die Argumente der Reihe nach.
classOf[Long] ist das primitive long, das der Konstruktor deklariert. Übergib newInstance geboxte Werte wie Long.box(1L).
Namen, Typen und Annotationen
Parameternamen kommen aus der Klassendatei. Scala 3 schreibt sie standardmäßig; Java-Klassen brauchen javac -parameters, sonst heißen sie arg0, arg1 und so weiter.
parameterType wird gegen die besitzende Klasse aufgelöst; ein Parameter einer generischen Basismethode liest sich in der Unterklasse als konkreter Typ. Bei Methodenparametern enthält annotations auch die desselben Parameters in überschriebenen Methoden.
Was Frameworks meistens brauchen
Mapper erzeugen eine leere Instanz und füllen sie über Properties. Dafür braucht es einen öffentlichen Konstruktor ohne Parameter.