Leg*_*end 25 java bytecode disassembly java-synthetic-methods
我正在查看从Java字节码获取的一些反汇编代码.我看到一些声明如下:
.method static synthetic access$0()Lcom/package/Sample;
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚什么synthetic或access$0意味.有人可以帮我理解这部分吗?
ILM*_*tan 32
在java语言中,内部类可以访问其封闭类的私有成员.但是,在Java字节码中,内部类的概念不存在,并且私有成员不可访问.要解决此问题,编译器会在外部类中创建合成访问器方法.我相信这就是你在这里看到的.access$0只是方法的名称.我不知道是什么,如果有的话synthetic.它可能只是隐藏其他编译器的方法以确保封装.
Joh*_*erg 27
甲编译器创建的字段,该字段的本地内部类链接到一个块的局部变量或引用类型参数.
又见 The JavaTM Virtual Machine Specification (§4.7.6)或Java中合成类.
| 归档时间: |
|
| 查看次数: |
9303 次 |
| 最近记录: |