zoukankan      html  css  js  c++  java
  • lambda表达式与函数式(FunctionalInterface)接口

    一、lambda表达式

    lambda表达式

    Lambda 是一个匿名函数,我们可以把 Lambda 表达式理解为是一段可以传递的代码(将代码像数据一样进行传递)。使用它可以写出更简洁、更 灵活的代码。作为一种更紧凑的代码风格,使Java的语言表达能力得到了提升。

    lambda表达式的使用

    1、举例:

    (o1,o2)->Integer.compare(o1,o2);

    2、格式:

    Lambda 表达式:在Java 8 语言中引入的一种新的语法元素和操作符。这个操作符为 “->” , 该操作符被称为Lambda 操作符箭头操作符。它将 Lambda 分为两个部分:

    左侧:指定了 Lambda 表达式需要的参数列表

    右侧:指定了 Lambda ,是抽象方法的实现逻辑,也即 Lambda 表达式要执行的功能

    3、语法格式(6种情况)

    语法格式一:无参数,无返回值

    Runnable r1 = ()->{System.out.println("lambda")};
    

    语法格式二:需要一个参数,无返回值

    Consumer <String> con = (String s)->{
                System.out.println(s);
            };
    

    语法格式三:数据类型可省略,因为可由编译器推断得出,称为==类型推断==

    Consumer <String> con = (s)->{
                System.out.println(s);
            };
    

    语法格式四:lambda若只需要一个参数,参数的小括号可以省略

    Consumer <String> con = s->{
                System.out.println(s);
            };
    

    语法格式五:语法格式五:lambda 需要有两个以上的参数,多条执行语句,并可以有返回

    Comparator<Integer> com2 = (o1,o2)->{
                System.out.println(o1);
                System.out.println(o2);
                return Integer.compare(o1,o2) ;
            };
    

    语法格式六:当lambda体只有一条语句时,return 与大括号若有可以省略

    Comparator<Integer> com2 = (o1,o2)->Integer.compare(o1,o2);
    

    4、lambda表达式的本质

    作为左边接口的实例,只能用于函数式接口.

    ​ 通常用于代替匿名内部类的实现

    二、函数式接口

    定义:只包含一个抽象方法的接口,称为函数式接口

    可以通过@FunctionalInterface注解来验证它是否为一个函数式接口。

    1、java四大核心函数式接口

    2、其它接口

  • 相关阅读:
    September 29th 2017 Week 39th Friday
    September 28th 2017 Week 39th Thursday
    September 27th 2017 Week 39th Wednesday
    September 26th 2017 Week 39th Tuesday
    September 25th 2017 Week 39th Monday
    September 24th 2017 Week 39th Sunday
    angular2 学习笔记 ( Form 表单 )
    angular2 学习笔记 ( Component 组件)
    angular2 学习笔记 ( Http 请求)
    angular2 学习笔记 ( Router 路由 )
  • 原文地址:https://www.cnblogs.com/polary/p/13223992.html
Copyright © 2011-2022 走看看