• 关于java8 Lambda表达式使用 以及变量的使用限制 方法引用


    一、Lambda表达式规则

    • 1、lambda表达式里只能引用被final 修饰的本地变量  ,这就是说不能在 lambda 内部修改定义在域外的局部变量,否则会编译错误。
    • 2、局部变量可以不用声明为 final,但是必须不可被后面的代码修改(即隐性的具有 final 的语义)
    • 3、lambda表达式里不允许声明一个与局部变量同名的参数或者局部变量。
      
      
      package com.ljg.test;

      import java.util.ArrayList;
      import java.util.List;

      public class LambdaTest02 {
      public static void main(String[] args){
      List<String> lists = new ArrayList<>();
      lists.add("陈天");
      lists.add("龙云");
      int a = 10;
      //lambda表达式便利
      try {
      lists.forEach(l -> {
      String a = "霸道总裁";//规则第3条
      System.out.println("lambda里给 外部局部变量 自动加上了 final 修饰符" + a);//规则第2条,隐式标记为 final常量
      lists.add("宁晓晓");//快速失败,报运行时异常ConcurrentModificationException
      });
      } catch (Exception e) {
      e.printStackTrace();
      }finally {
      a++;//编译不通过,a局部变量已被lambda表达式隐式的编辑为final
      System.out.println("finally输出:" + a);
      }

      //常规for循环
      // for (int i = 0; i < lists.size(); i++) {
      // a++;
      // System.out.println("list元素:" + lists.get(i));
      // }
      }

      }
       
  • 相关阅读:
    Win32++ Home Page
    CEGUI Home Page
    迁移DirectX11到VS2015 Win10
    Oracle常用查看表结构命令
    PLSQL常用配置
    PLSQL DEVELOPER
    WeblogicException
    java.nio.Buffer
    spring batch
    vi
  • 原文地址:https://www.cnblogs.com/parrot/p/13704367.html
Copyright © 2020-2023  润新知