в моей программе, я имею дело с классами и примитивными типами. Если программа найдет класс, он просто делает один из следующих вызовов:
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 ниже. Во всяком случае, я отметил Ответ Тома .