Ich muss einige reflektive Methodenaufrufe in Java durchführen. Diese Aufrufe enthalten Methoden mit primitiven Datentypen (int, double usw.). Die Art, solche Typen anzugeben, wenn die Methode reflektiv nachgeschlagen wird, ist int.class, double.class, usw.Dynamische Suche nach der Klasse, die einen primitiven Java-Typ darstellt
Die Herausforderung besteht darin, dass ich Eingaben von einer externen Quelle akzeptiere, die die Typen dynamisch angeben. Daher muss ich auch diese Klassenreferenzen dynamisch erstellen. Stellen Sie sich eine getrennte Datei eine Liste von Methodennamen mit Listen von Parametertypen:
doSomething int double
doSomethingElse java.lang.String boolean
Wenn die Eingabe etwas wie java.lang.String
war, weiß ich, ich Class.forName("java.lang.String")
diese Klasse Instanz zurück nutzen könnte. Gibt es eine Möglichkeit, diese Methode oder eine andere Methode zu verwenden, um die primitiven Klassen zurückzubekommen?
Bearbeiten: Vielen Dank an alle Befragten. Es scheint klar zu sein, dass es keine eingebaute Möglichkeit gibt, sauber zu machen, was ich will, also werde ich mich damit begnügen, die Klasse ClassUtils
aus dem Spring-Framework wiederzuverwenden. Es scheint einen Ersatz für Class.forName() zu enthalten, der mit meinen Anforderungen funktioniert.
Die Quelle für die ClassUtils.java-Datei scheint an dieser Verknüpfung unterbrochen werden. [Dieser schaut nach oben, zu mir] (http://www.jarvana.com/jarvana/view/org/springframework/spring-core/3.1.0.RELEASE/spring-core-3.1.0.RELEASE-sources. jar! /org/springframework/util/ClassUtils.java? format = ok) – Patrick
@Patrick: Leider ist dein Link auch kaputt gegangen. Das Spring-Framework ist jetzt jedoch auf GitHub verfügbar. https://github.com/spring-projects/spring-framework/blob/master/spring-core/src/main/java/org/springframework/util/ClassUtils.java –