lambda表达式

lambda 表达式的语法格式如下:

(parameters) -> expression

(parameters) ->{ statements; }
特性
  • 可选类型声明:不需要声明参数类型,编译器可以统一识别参数值。
  • 可选的参数圆括号:一个参数无需定义圆括号,但多个参数需要定义圆括号。
  • 可选的大括号:如果主体包含了一个语句,就不需要使用大括号。
  • 可选的返回关键字:如果主体只有一个表达式返回值则编译器会自动返回值,大括号需要指定明表达式返回了一个数值。

函数接口

一般使用注解@FunctionalInterface修饰

在Java 8中,把那些仅有一个抽象方法的接口称为函数式接口。如果一个接口被@FunctionalInterface注解标注,表示这个接口被设计成函数式接口,只能有一个抽象方法

java8自带的常用函数式接口
函数接口抽象方法功能参数返回类型
Predicatetest(T t)Tboolean判断真假
FunctionR apply(T t)TR将T映射为R(转换功能)
Consumeraccept(T t)Tvoid消费消息
SupplierT get()NoneT生产消息
UnaryOperatorT apply(T t)TT逻辑非(!)
BinaryOperatorapply(T t, U u)(T,T)(T)求两个数的乘积(*)
使用代码示例
@Test
public void testLambda() {
	Predicate<Integer> predicate = x -> x < 5;
	System.out.println(predicate.test(4));

	Function<Integer, String> function = x -> "我是function测试" + x;
	System.out.println(function.apply(3));

	Consumer<String> consumer = System.out::println;
	consumer.accept("我是consumer测试");

	Supplier<String> supplier = () -> new String("我是supplier测试");
	System.out.println(supplier.get());

	UnaryOperator<Boolean> unaryOperator = x -> !x;
	System.out.println(unaryOperator.apply(true));

	BinaryOperator<Integer> binaryOperator = (x, y) -> x * y;
	System.out.println(binaryOperator.apply(2, 3));
}

结果
在这里插入图片描述
stream相关详见:https://blog.csdn.net/sinat_35757488/article/details/94379891

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值