Ich habe eine Klasse, die von 1 bis 4 Parameter dauern kann. Sie sind immer Strings. Ich möchte ein Objekt dieser Klasse basierend auf der Anzahl der an die Funktion übergebenen Argumente erstellen. Gibt es eine Möglichkeit, einen Konstruktor zu erstellen und ein Array von Objekten direkt an newInstance zu übergeben?Erstellen einer Klasse mit Parameter Konstruktor in Scala Reflexion
NewInstanceWithReflection clazz = (NewInstanceWithReflection)Class.forName("NewInstanceWithReflection").newInstance();
Constructor constructor = NewInstanceWithReflection.class.getDeclaredConstructor(new Class[] {String.class});
NewInstanceWithReflection object1 = (NewInstanceWithReflection)clazz.newInstance(new Object[]{"StackOverFlow"});
Dieser in sbt-Interpreter eingefügte Code scheint nicht zu funktionieren. Jede Hilfe wird geschätzt.
Sorry, ich habe mein Codebeispiel vermasselt. Ich wollte nur wissen, ob es möglich ist, den '.getDeclaredConstructor (classOf [String])' zu überspringen, da die Anzahl der Stringargumente von 1 bis 4 variieren kann und die dynamische Anzahl der Argumente an die 'newInstance'-Methode übergeben wird . – NNamed
nein, das ist nicht möglich ... 'newInstance' ist eine Methode für das' Konstruktor'-Objekt. Sie müssen das Objekt haben, um eine Methode dafür aufzurufen. Das "Überspringen" der Objektinstanz wird also nicht funktionieren. – Dima