我在cobertura.xml
中有以下信息<method name="visitNode"
signature="(Lchs/cof/drawplus/IJoint;Lchs/cof/logical/schem/ISegment;Lchs/analysis/GraphServices$IGraphVisitor;I)Z"
签名是java方法的错位名称。 (http://asm.ow2.org/doc/faq.html#Q7)
如何构造方法参数列表,如下所示。
boolean visitNode(drawplus.IJoint root,
schem.ISegment segmentBefore,
IGraphVisitor visitor,
int branch)
是否有可以进行去除损坏的库?
答案 0 :(得分:2)
您可以从方法描述符中提取参数类型和结果,但不能提取参数名称。
我不知道有哪个库可以进行此提取,但我确定此代码已经实现了几次。实现自己并不困难。方法描述符字符串的语法在Java虚拟机规范中指定 - JVMS 4.3.3。
答案 1 :(得分:2)
JD Core应该为你做这一切。但是,它是一个c ++ lib,因此它可能不适用于您。 BCEL (Byte Code Engineering Library允许您创建,分析和修改二进制文件,这些文件应该符合您的要求。 BCEL是用java编写的 如果未使用debug标志编译类文件,则参数名称可能是通用的。
答案 2 :(得分:1)
这是对重复规则的再现,因为这个问题对于该主题的搜索结果非常高。以下详细信息来自原始问题中的链接。
原始表示:
V
- void
Z
- boolean
C
- char
B
- byte
S
- short
I
- int
F
- float
J
- long
D
- double
班级表示:
L<class>;
Ljava/io/ObjectOutput;
Ljava/lang/String;