【发布时间】:2020-02-18 00:43:03
【问题描述】:
ASM 4.0 用户指南描述了默认公共构造函数的字节码
ALOAD 0
INVOKESPECIAL java/lang/Object.<init> ()V
RETURN
我想复制这个,用默认的公共构造函数创建我自己的类,然后反编译它。为构造函数生成的字节码如下所示:
L0
LINENUMBER 3 L0
ALOAD 0
INVOKESPECIAL java/lang/Object.<init> ()V
RETURN
L1
LOCALVARIABLE this Lcom/example/EmptyFixture; L0 L1 0
MAXSTACK = 1
MAXLOCALS = 1
我的理解是,所有嵌套在标签L0 下,与用户指南相匹配的东西都会被执行。在RETURN之后有无法访问的代码,嵌套在标签L1下,这只是一个带有类类型的this的局部变量声明。
包含此变量声明的原因是什么?它有什么用,尤其是因为它看起来无法访问?
【问题讨论】: