Dynamicznie znajdź klasę reprezentującą prymitywny typ Java
Muszę wykonać pewne refleksyjne wywołania metod w Javie. Te wywołania będą obejmować metody, które mają argumenty, które są prymitywnymi typami (int, double itd.). Sposobem na określenie takich typów przy odbijaniu metody w sposób refleksyjny jest int.class, double.class itd.
Wyzwanie polega na tym, że akceptuję dane wejściowe z zewnętrznego źródła, które będzie dynamicznie określać typy. Dlatego muszę dynamicznie wymyślić te odwołania do klas. Wyobraź sobie plik rozdzielany listą nazw metod z listami typów parametrów:
doSomething int double
doSomethingElse java.lang.String boolean
Jeśli dane wejściowe były podobnejava.lang.String
, Wiem, że mógłbym użyćClass.forName("java.lang.String")
do tej instancji klasy z powrotem. Czy istnieje sposób na użycie tej metody lub innej, aby przywrócić klasy pierwotne?
Edytować: Dziękuję wszystkim respondentom. Wydaje się jasne, że nie ma wbudowanego sposobu, aby czyścić to, co chcę, więc postanowię ponownie użyćClassUtils
klasa ze środowiska Spring. Wydaje się, że zawiera on zamiennik dla Class.forName (), który będzie działał z moimi wymaganiami.