小编wei*_*esr的帖子

使用未初始化的最终字段 - 有/没有'这个'.预选赛

有人可以向我解释为什么以下两个样本中的第一个编译,而第二个没有?注意唯一的区别是第一个明确地使用'.this'限定对x的引用,而第二个没有.在这两种情况下,显然都会尝试在初始化之前使用最终字段x.

我原以为两个样本都会被完全平等对待,导致两者都有编译错误.

1)

public class Foo {
    private final int x;
    private Foo() {
        int y = 2 * this.x;
        x = 5;
    }
}
Run Code Online (Sandbox Code Playgroud)

2)

public class Foo {
    private final int x;
    private Foo() {
        int y = 2 * x;
        x = 5;
    }
}
Run Code Online (Sandbox Code Playgroud)

java

54
推荐指数
1
解决办法
2346
查看次数

标签 统计

java ×1