zoukankan      html  css  js  c++  java
  • 关于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));
      // }
      }

      }
       
  • 相关阅读:
    SQL Server-基础-经典SQL语句
    Web Service简介
    大学学习与班级社团管理经验总结
    arduino超声波开发模块
    CSS中关于居中的几种设置方法
    Software testing lab3
    jQuery表格排序问题
    Jquery中的data()方法、att()、prop()方法的区分
    WEB开发自己收集的资源
    Jquery插件封装---奇怪的代码
  • 原文地址:https://www.cnblogs.com/parrot/p/13704367.html
Copyright © 2011-2022 走看看