java lambda 变量_java8新特性-lambda(变量捕获)
1.匿名內部類中的變量捕獲
public class App {
String s1 = "全局變量";
public void testInnerClass() {
String s2 = "局部變量";
new Thread(new Runnable() {
String s3 = "內部變量";
@Override
public void run() {
System.out.println(this.s3); //this關鍵字,表示的是當前內部類類型的對象
System.out.println(s1); //直接訪問全局變量
System.out.println(s2); //直接訪問局部變量,但是不能對局部變量進行修改,默認是final類型
}
}).start();
}
public static void main(String[] args) {
App app = new App();
app.testInnerClass();
}
}
2.lambda表達式中的變量捕獲
public void testLambda() {
String s2 = "局部變量Lambda";
new Thread(() -> {
String s3 = "內部變量Lambda";
//訪問全局變量
System.out.println(this.s1); //this關鍵字,表示就是所屬方法所在類型對對象
//訪問局部變量
System.out.println(s2); //不能局部修改,默認是final類型
System.out.println(s3);
}).start();
}
總結
以上是生活随笔為你收集整理的java lambda 变量_java8新特性-lambda(变量捕获)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 中策略模式_JAVA中的策略模
- 下一篇: java项目怎样强制删除手机缓存_Mye