Java JPL8:一种情况,有效最终和最终的区别
有效的最终代码Java JPL8:一种情况,有效最终和最终的区别,java,final,Java,Final,有效的最终代码 public void say() { String b = "222"; // effectively final b class A { public A(String c) { b = "123"; // error } } b = "123"; // success; if b is final, it is an error } 是否存在更详细的差异?如果变量在声明后受
public void say() {
String b = "222"; // effectively final b
class A {
public A(String c) {
b = "123"; // error
}
}
b = "123"; // success; if b is final, it is an error
}
是否存在更详细的差异?如果变量在声明后受到影响(例如,任何时候写入“b=”123”),则它实际上不是最终变量 在内部类或嵌套类(如类A)中,只能引用外部作用域(如b)中的有效最终变量 同样的限制也适用于从嵌套类(如lambdas)派生的构造
声明一个带有“final”的变量“关键字是确保变量有效为final的一种方便方法。您刚刚回答了自己的问题。有效final是一个在整个程序执行过程中从不更改其值的变量,而final是用final关键字明确指定变量,告诉编译器不要更改