Я не знаю ни одного метода API, но преобразование довольно простое. Вы можете найти детали в спецификации JVM здесь .
Примитивные типы представлены одним символом:
B = байт
C = символ
D = двойной
F = плавать
Я = int
J = длинный
S = короткий
Z = логическое значение
Класс и типы интерфейса представлены полным именем с
Префикс «L» и «;» суффикс. Точки "." в полностью определенном имени класса
заменяется на '/' (для внутренних классов символ '.', отделяющий имя внешнего класса от имени внутреннего класса, заменяется на '$'). Таким образом, внутреннее имя класса String будет «Ljava / lang / String;» и внутреннее имя внутреннего класса "java.awt.geom.Arc2D.Float" будет "Ljava / awt / geom / Arc2D $ Float;".
Имена массивов начинаются с открывающей скобки '[', за которой следует имя типа компонента (примитив или ссылка). Таким образом, «int []» становится «[I», а «javax.swing.JFrame [] []» становится «[[Ljavax.swing.JFrame;».