En mi programa, trato con clases y tipos primitivos. Si el programa encuentra una clase, sino que simplemente hace una de las siguientes llamadas:¿Cómo obtener la clase de tipos primitivos con Javassist?
Class.forName(classname)
cc.toClass()
dondecc
es una instancia deCtClass
Sin embargo, si encuentra un tipo primitivo, las cosas empeoran:
Class.forName
no se puede utilizar, no se puede utilizar con tipos primitivos.cc.toClass()
vuelvenull
Es posible llamar el campo TYPE
de tipos primitivos contenedor de clase, pero ¿cómo puedo hacerlo con la reflexión?
Aquí está mi código:
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
EDIT: He publicado the solution I chose en los anwsers abajo. De todos modos, marqué Tom's answer.
Esta otra pregunta definitivamente ayudará: [boolean.class?] (Http://stackoverflow.com/questions/1019208/boolean-class) –
@Andreas_D No mucho, ya que quiero realizar la llamada con reflejo de java. – Stephan
pero * podemos * usar 'boolean.class',' int.class' y así sucesivamente como objetos 'Clase' cuando reflejamos métodos y constructores –