Java基础-Java8新特性Lambda表达式

本篇目录

1、Lambda表达式是什么

2、Lambda表达式的语法

3、Lambda表达式的特点

4、Lambda表达式的简单使用

5、为什么使用Lambda表达式

6、方法引用

7、函数式接口

1、Lambda表达式是什么?

Lambda表达式是Java8中添加的一个新特性,允许把函数作为一个方法的参数,称为“函数式编程”。

举个例子

List<Integer> list=new ArrayList<>();
list.forEach(item->{
    System.out.println(item);
});

上面代码中List将匿名函数 Lambda 的表达式作为 forEach() 方法的参数,实现了遍历集合的操作。

2、Lambda表达式的语法

一个最普通的Lambda表达式如下:

Test test=()->{
	System.out.println("我是方法体");
}

这段代码表示将实现一个接口的方法,()表示参数,{}表示方法体。

3、Lambda表达式的特点

① 当参数只有一个时,()可省略。

② 当方法体只有一句时,{}可省略。

③ 当方法有返回值时,方法体只有一个返回语句时,return可以省略。

4、Lambda表达式的简单使用

定义一个接口

public interface TestInterface {
    void test(String str);
}

使用Lambda表达式

public static void main(String[] args) {
    TestInterface test=(a)->{
        System.out.println(a);
    };
    test.test("测试");
}

5、为什么使用Lambda表达式

Lambda表达式允许把函数作为一个参数进行传递,使Lambda表达式可以写出更简洁的代码风格,以极少的代码使表达能力大大提升。

6、方法引用

当多个Lambda表达式是相同内容时,我们可以定义一个公共方法,通过方法引用来实现接口,可以避免代码重复。

在Lambda表达式简单使用的例子基础上,加入如下内容:

公共方法

public void test(String t){
    System.out.println("我是公共方法,参数为:"+t);
}

方法引用

Main m = new Main();
TestInterface test=m::test;
test.test("测试");

当目标方法是静态方法时,可以直接通过类名引用,如:

TestInterface test=Main::test;

当目标方法是构造方法时,还可以写做如下形式:

TestInterface test=Main::new;

7、函数式接口

在任意函数式接口上使用@FunctionalInterface注解来标识这个接口是一个函数式接口。

7.1、Java内置四大核心函数式接口

image.png

7.2、自定义函数式接口

创建一个函数式接口

@FunctionalInterface
public interface TestInterface<T> {
    T test(String str);
}

创建一个方法,将函数式接口作为方法参数

public static String test(TestInterface<String> param){
    return "测试函数式接口";
}

调用如上方法

String val=test(t->{
    return t.toLowerCase();
});
System.out.println(val);
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

二饭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值