Evi*_*ils 19 java bytecode javassist
我用Javassist创建了一个没有实际方法的构造函数
CtConstructor c = CtNewConstructor.make ( argTypes, null, newClass );
Run Code Online (Sandbox Code Playgroud)
当我试图推出这个类的签名时
c.getSignature();
Run Code Online (Sandbox Code Playgroud)
我明白了
public Echo ()V
Run Code Online (Sandbox Code Playgroud)
我很困惑"V"是什么意思?我期待公共Echo(); 或类似的东西......
Sim*_*son 48
JVM使用一种紧凑的方法来存储方法签名,其中构造函数被认为是一种特殊情况.
对于你的例子:
() 表示不带参数的方法V 表示它什么都不返回该计划的其他部分是:
B - 字节C - charD - 双倍F - 漂浮I - intJ - 长S - 简短V - 无效Z - 布尔值[ - 括号后面的数组L[类名] ;- 此类的实例,点为斜线([args] )[返回类型] - 方法签名例如:
public int foo(String bar, long[][] baz)
Run Code Online (Sandbox Code Playgroud)
会成为
(Ljava/lang/String;[[J)I
请参阅Sun ^ H ^ H ^ HOracle网站上的规范
| 归档时间: |
|
| 查看次数: |
8722 次 |
| 最近记录: |