美文网首页
Java学习笔记(1)Lambda是函数式接口的语法糖

Java学习笔记(1)Lambda是函数式接口的语法糖

作者: 浩神 | 来源:发表于2019-03-28 10:49 被阅读0次

Java中的Lambda和JavaScript的箭头函数很相似。

如JavaScript的箭头函数:

var isNegative = (num) => num < 0

[1, 2, 3, -4].filter(isNegative)

对应Java代码则是:

Predicate<Integer> isNegative = num -> num < 0;
Stream<Integer> integerStream = Stream.of(1, 2, 3, -4)
                .filter(isNegative);

Lambda的本质是一个函数式接口的语法糖。以上面的代码为例:

Predicate<Integer> isNegative = num -> num < 0;

等同于以下代码:

class Negative implements Predicate<Integer> {

    @Override
    public boolean test(Integer integer) {
        return integer < 0;
    }
}
Predicate isNegative = new Negative();

直觉上Lambda节省了很多代码,这种节省有几个前提:

  1. 想表示一个接口的实例
  2. 这个接口只需要实现一个方法

对应于上面的Predicate接口,我只需要实现test方法就行了。所以我就不需要先去用一个类去实现这个接口,然后再实例化这个类。

总结

Lambda表达式是单一抽象方法接口的语法糖,如果一个接口只有一个方法需要实现,就可以使用Lambda表达式实例化这个接口

相关文章

  • Lambda表达式

    Lambda表达式与函数式接口紧密相关,函数式接口介绍 Lambda表达式的基本语法 Java Lambda表达式...

  • JDK1.8新特性(超详细)

    Java函数式设计 实现方法: @FunctionalInterface接口 Lambda语法 方法引用 接口de...

  • Java学习笔记(1)Lambda是函数式接口的语法糖

    Java中的Lambda和JavaScript的箭头函数很相似。 如JavaScript的箭头函数: 对应Java...

  • lambda表达式

    概要: 函数式编程特性 lambda表达式语法及应用场景 Java 8自带函数式接口详解 一、函数式编程特性 1....

  • Lambda表达式总结

    Lambda表达式总结使用范例以及例子Lambda表达式基础语法函数式接口Lambda练习Java8四大内置函数式...

  • JDK8 新特性 快速理解

    基础语法 Lambda需要函数式接口支持 接口用@Functiona1Interface修饰,就是函数式接口 La...

  • Java学习笔记(2)使用java.util.function包

    上节提到Lambda是实例化单抽象方法接口(函数式接口)的语法糖。 那么我们在使用Lambda的时候,第一步是否需...

  • Java 学习笔记(13)——lambda 表达式

    title: Java 学习笔记(11)——lambda 表达式tags: [Java 基础, 学习笔记, 函数式...

  • 二 Lambda语法

    在讲解Lambda语法之前我们需要先明确一点:Lambda表达式需要函数式接口的支持。什么是函数式接口?其实就是接...

  • 42 函数式接口

    函数式接口在Java中是有且只有一个抽象方法的接口,java中就是使用Lambda接口作为函数式接口 定义接口格式...

网友评论

      本文标题:Java学习笔记(1)Lambda是函数式接口的语法糖

      本文链接:https://www.haomeiwen.com/subject/einfbqtx.html