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?
Type.getArgumentTypes(String methodDescriptor)