Как получить класс примитивных типов с Javassist?

в моей программе, я имею дело с классами и примитивными типами. Если программа найдет класс, он просто делает один из следующих вызовов:

  • Class.Forname (ClassName)
  • CC.Toclass () , где CC является экземпляром CTClass

Однако, если он находит примитивный тип, все становится все хуже:

  • Class.forname не используется, его нельзя использовать с примитивными типами.
  • CC.Toclass () Возвращает NULL

Можно вызвать поле поле из примитивных типов класса обертки, но как я могу сделать это с отражением?

здесь мой код:

CtClass cc;//Obtained from caller code
Class classParam;
if (cc.isprimitive()) {
    classParam= ?? // How can I get TYPE field value with reflection ?
} else {
    String nomClasseParam = cc.getName();

    if (nomClasseParam.startsWith("java")) {
        classeParam = Class.forName(nomClasseParam);
    } else {
        classeParam = cc.toClass();
    }
 }

Javassist 3.12.0.ga

Редактировать: Я опубликовал решение, которое я выбрал в anwsers ниже. Во всяком случае, я отметил Ответ Тома .

6
задан Stephan 11 November 2017 в 17:14
поделиться