I'm trying to extract method parameters information from Java class bytecode using asm MethodVisitor
. visitParameter
method of MethodVisitor
is not called (because no parameter names are present in compiled class file). How can i get count of method parameters and their types?
The only thing I've found so far is desc
parameter of visitMethod
from MethodVisitor
. I can copy-paste TraceSignatureVisitor
class from asm-util, rewrite about 50 lines of code to store parameters declarations into List/array instead of single StringBuffer
.
Another option is suggested by in answer "https://stackoverflow.com/questions/18061588/get-function-arguments-values-using-java-asm-for-bytecode-instrimentation":
The number of arguments to the method can be computed from the method description using the code in the following gist: https://gist.github.com/VijayKrishna/6160036. Using the
parseMethodArguments(String desc)
method you can easily compute the number of arguments to the method.
From my point of view copy-pasting and rewriting TraceSignatureVisitor
is still better.
But i suppose there should be more simple way to work with method signatures in asm-util. Is there?