• java8 Lambda表达式学习笔记


    Lambda表达式学习笔记

    • 当某个接口中只有一个抽象方法(不包括静态方法和默认方法),该接口称为 FunctionalInterface ,仅当这种接口,我们可以使用lambda表达式来实现该接口方法。可以在接口上标注@FunctionalInterface标签,可以用于校验该接口是否可以使用Lambda方式,比如你在接口中声明了两个public的方法,这时候你还添加了 @FunctionalInterface标签处会报错;java原本的很多接口在java8之后都加上了这个标签,可以参见Runable接口和Comparator接口

    • lambda表达式的特点主要包括:
      1.匿名的
      2.函数式的
      3.可以传参的
      4.清晰简洁的

    • lambda表达式注意点
      1.“->”后带有花括号,就要有return关键字
      2.参数如果超过一个,所有参数就必须用“()”扩住
      3.参数的类型可以省略掉,会根据方法推导出相应的类型

    • lambda表达式的语法构成
      参数列表  |  方法体部分

    (o1, o2)  ->  o1.getColor().compareTo(o2.getColor());

    举例几个合法的lambda表达式
    (String ss) -> ss.length();
    (Apple a) -> a.getColor.equals("red");

    • lambda相当于是一个匿名函数,当在lambda的函数体类使用调用lambda函数的主函数中的变量时,该变量默认转换成final类型的。即:

    public static void main(String[] args){
      int i=0;
      Runnable runnable = () -> System.out.println(i++);
    }
    此时写成i++是错误的,在lambda使用了i的时候,就默认将i改为final类型的变量了。

    同样的,如果是lambda里正常只读的i,但是在lambda之后又对i进行了改变,这时候lambda里的i同样会编译失败。

  • 相关阅读:
    基于Text-CNN模型的中文文本分类实战 流川枫 发表于AI星球订阅
    SQL Server 定时执行SQL语句的方法
    linq 根据指定条件返回集合中不重复的元素
    asp.net mvc ChildActionOnly 和ActionName的用法
    C# 让枚举返回字符串
    EF中使用SQL语句或存储过程
    Sql Server系列:视图
    C# 获取web.config配置文件
    C# 在EF中直接运行SQL命令
    c# mvc 获取 HtmlHelper 表达式值和时间格式化 去边框
  • 原文地址:https://www.cnblogs.com/EtherealWind/p/14954417.html
Copyright © 2020-2023  润新知