私のプログラムでは、クラスとプリミティブ型を扱います。プログラムがクラスを見つけた場合、次の呼び出しのいずれかを実行します。
Class.forName(classname)
cc.toClass()
cc
のインスタンスはどこですかCtClass
ただし、プリミティブ型が見つかった場合、事態はさらに悪化します。
Class.forName
は使用できません。プリミティブ型では使用できません。cc.toClass()
戻り値null
プリミティブ型のラッパー クラスからフィールドを呼び出すことはTYPE
可能ですが、リフレクションでどのように行うことができますか?
これが私のコードです:
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
編集:以下のアンサーで選択したソリューションを 投稿しました。とにかく、トムの答えにチェックを入れました。