jcodemodel
jcodemodel copied to clipboard
How can I get the Java Class value for a generated param?
I am trying to figure out how to get the Java Class of a generated param. I have tried using getting the AbstractJType type() from the param and playing around with the API but cant seem to figure out how to get the Class value.
For example given the following params I would like to extract the type. I am also trying to determine if a param is a List or not, but I cant seem to figure that out either. I ave tried isArray on the type, as well a using a ref to a List.class and checking isAssignable but I think its checking the actual jcode type. I am trying to refrain from checking if the param.type().name().startsWith("List") or use regex to extract the type, but at this point thats all I can come up with
List<CustomObject> - List CustomObject - CustomObject is List<CustomObject> of type list? - true is CustomObject of type list? - false
Thanks!
could you provide a minimal example of code ?
Hmm this does not work
{
JMethod method = null;
JVar firstParam = method.paramAtIndex(0);
if(firstParam.type() instanceof JReferencedClass ) {
var typeclass = ((JReferencedClass) firstParam.type()).getReferencedClass();
}
}
I guess we should add the corresponding Class<?> JReferencedClass::getReferencedClass() @phax ?
I think the method should be added in the abstractJType :
boolean AbstractJType::isInstanceOf(Class <?> clazz) {return owner().ref(clazz).isAssignableFrom(this);}
. This would allow to call if(firstParam.type().isInstanceOf(List.class)){…}
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.