java lambda 表达式

本文深入探讨Java 8引入的Lambda表达式,讲解其语法、如何简化代码及提高可读性。涵盖函数式接口、方法引用、构造器引用等核心概念,并提供实例代码。

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;

链接

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值