This content has been marked as final.
Show 2 replies
-
1. Re: Altering Generics Information of Methods using Javassist
simonringuette Dec 20, 2007 3:19 PM (in response to simonringuette)I have done further reading on how this is implemented by the compiler and finally found out the answer I was looking for.
You can defenitely do that with javaassist. The key class is javassist.bytecode.SignatureAttribute.
From a CtMethod, i've obtained the methodInfo I add a Signature attribute. You can do it with something like:CtMethod method = .... MethodInfo methodInfo = method.getMethodInfo(); SignatureAttribute signatureAttribute = new SignatureAttribute(methodInfo.getConstPool(), "()Ljava/util/List<Ljava/lang/String;>;"); methodInfo.addAttribute(signatureAttribute);
If your more interesed in reading the signature with the generics inside, you can use the methodInfo.getAttribute(SignatureAttribute.tag).
I hope this helped. -
2. Re: Altering Generics Information of Methods using Javassist
ugn May 25, 2008 12:29 PM (in response to simonringuette)I'am interested in reading return and parameter types like Collection . With your suggestion it does not work for me. I just get somer annotations an thats it. If I work with mthod.getReturnType() i get Collection but not Collection. Does someone have an idea how to solve this problem?