【发布时间】:2022-11-16 22:32:51
【问题描述】:
jls-8.4 指出
接收者参数是一个可选的语法设备,用于实例方法或 内部类的构造函数。对于实例方法,接收者参数表示 调用该方法的对象。对于内部类的构造函数, 接收者参数表示新接收者的直接封闭实例 构造的对象。
但是,jls-8.8.1 指出
非私有内部成员类的构造函数隐式声明为 第一个形式参数,一个代表直接封闭实例的变量 班级的
所以在jls-8.8.1中,上面例子中高亮的构造函数中的参数应该叫做形参。类文件结构符合它,因为我可以在方法描述符和构造函数的
MethodParameters属性中找到这个参数。但显然接收参数和形式参数在 jls 中是两个不同的东西,请参阅 jls-8.4 中的
Method Declaration,jls-8.4.1 中的Formal Parameters和 jls-8.8 中的Constructor Declaration。jls 中这样的参数的正确类型是什么?
【问题讨论】: