在JLS 8中:
16 :
对其值的访问包含变量的简单名称(或者,对于字段,由此限定的字段的简单名称)。
我们知道在明确分配之前无法访问最终的空白字段。
因此,从1和2开始,我们推断出我们无法使用由此限定的简单名称访问最终的空白字段。
但是
此代码编译良好:
public class Test {
final int y;
final int z = this.y;
{ y = 1;
}
}
但如果我们提出最终int z = y
;
问题出在哪里?