Ani*_*kur 17 java final anonymous-class
匿名类的文档说明
匿名类无法访问其封闭范围中未声明为final或者有效final的局部变量.
我不明白变量是"有效最终"是什么意思.有人能提供一个例子来帮助我理解这意味着什么吗?
Kep*_*pil 23
有效的最终意味着它在获得初始值后永远不会改变.
一个简单的例子:
public void myMethod() {
int a = 1;
System.out.println("My effectively final variable has value: " + a);
}
Run Code Online (Sandbox Code Playgroud)
这里a没有宣布为final,但它被认为是有效的,因为它永远不会改变.
从Java 8开始,可以通过以下方式使用它:
public void myMethod() {
int a = 1;
Runnable r = new Runnable() {
@Override
public void run() {
System.out.println("My effectively final variable has value: " + a);
}
};
}
Run Code Online (Sandbox Code Playgroud)
在Java 7及更早版本中,a必须声明final能够在这样的本地类中使用,但是从Java 8开始,它实际上是最终的.
| 归档时间: |
|
| 查看次数: |
1732 次 |
| 最近记录: |