美文网首页
java lambda 表达式

java lambda 表达式

作者: hatlonely | 来源:发表于2020-01-01 18:10 被阅读0次

java lambda 表达式

lambda 是 java 8 引入的新特性,lambda 能替换简单的函数和类,简化了代码,提高了代码可读性

语法

(Type1 param1, Type2 param2, ...) -> {
    statement1;
    statement2;
    ...
    return statementX;
}
  1. 如果参数类型可以自动推导,可以省略
  2. 如果参数只有一个,小括号可以省略
  3. 如果主体只有一条语句,大括号可以省略
  4. 如果主体只有一条语句,return 语句可以省略

函数式接口

java 里面没有函数对象,所以提供了很多只有一个方法的接口,这类接口被称为函数式接口,这些接口可以用 lambda 表达式来构造

Predicate<Integer> greater10 = x -> x > 10;
Consumer<Integer> print = x -> System.out.println(x);
Function<Integer, String> intToString = x -> Integer.valueOf(x).toString();
Supplier<Integer> randInt = () -> ThreadLocalRandom.current().nextInt();
Comparator<Integer> less = (x, y) -> y - x;
UnaryOperator<Integer> power = x -> x * x;
BinaryOperator<Integer> add = (x, y) -> x + y;
BiConsumer<Integer, String> printis = (i, s) -> System.out.println(i + s);
Runnable run = () -> System.out.println("hello world");

方法引用与构造器引用

lambda 表达式可以直接引用类或者对象的方法,语法: <object|class>::method

也可以用 <class>::new 引用无参构造函数,带参构造函数可以用上面的 lambda 语法构造

Consumer<Integer> print = System.out::println;
Predicate<String> empty = String::isEmpty;
Supplier<Date> date = Date::new;

链接

相关文章

  • Java 8 - Lambda表达式

    Java 8 - Lambda表达式 1 Java 8-概述2 Java 8 - Lambda表达式3 Java ...

  • 【Java】4.0 Java中lambda表达式(下)

    【Java】3.0 Java中lambda表达式(上)【Java】4.0 Java中lambda表达式(下) 7....

  • java 8 lambda表达式中的异常处理

    java 8 lambda表达式中的异常处理 简介 java 8中引入了lambda表达式,lambda表达式可以...

  • java8

    1.lambda表达式《java8 Lambda表达式简介》 《java8 lambda表达式,方法的引用以及构造...

  • 《Java 8实战》学习总结

    Java 8新特性概览 Lambda表达式 流 默认方法 Lambda表达式 Lambda和函数式接口Java 8...

  • Java零基础自学DAY10 2018-03-22

    Java 8 新增的lambda表达式 Lambda 转换: Lambda表达式组成: 形参列表 箭头 ( ->)...

  • Java 8、9 语言新特性

    Java语言新特性 Java8 Java 8 新特性 Lambda 表达式 Lambda表达式(也叫做闭包)是Ja...

  • Java的Lambda表达式

    Java的Lambda表达式 1. 什么是Lambda表达式 简单的说,Lambda表达式就是匿名方法。Lambd...

  • Lambda表达式

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

  • 7 Lambda表达式

    Lambda表达式是Java8的重要更新,Lambda表达式支持将代码块作为方法参数,Lambda表达式允...

网友评论

      本文标题:java lambda 表达式

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