前言
lamda表达式只支持函数式接口。
- Lambda 表达式是 JDK8 的一个新特性,可以取代大部分的匿名内部类,写出更优雅的 Java 代码,尤其在集合的遍历和其他集合操作中,可以极大地优化代码结构。
- 为啥要突然插播一个lamda表达式的学习,因为这玩意很有逼格呀~代码写起来更有大佬的感觉。
一、函数式接口
-
什么是函数式接口?
- 任何一个接口,有且只有 一个抽象方法,那么它就是函数式接口。
-
典型的函数式接口
public interface mainInterface {
void funMethod();
}
- 对于函数式接口,我们可以用lamda表达式来创建他的实现对象。
二、接口的五种实现方式
- ①正常类实现
代码案例:
/**
* 1.正常接口实现类
*/
class FunInterImpl implements FunInter{
//重写该方法
@Override
public void method(String name) {
System.out.println("我是实现类中的重写方法:"+name);
}
}
- ②静态内部类实现
//2、静态内部类实现
static class FunInterImpl implements FunInter{
@Override
public void method(String name) {
System.out.println("我是实现类中的重写方法:"+name);
}
}
- ③局部内部类实现
//3.局部内部类
class FunInterImpl2 implements FunInter{
@Override
public void method(String name) {
System.out.println("我是实现类中的重写方法:"+name);
}
}
- ④匿名内部类实现
//4.匿名内部类,要一分号;结尾
FunInter funInter2 = new FunInter() {
@Override
public void method(String name) {
System.out.println("我是实现类中的重写方法:"+name);
}
};
- ⑤lamda表达式实现
//5.lamda表达式实现
FunInter funInter3 = (String name) ->{
System.out.println("我是实现类中的重写方法:"+name);
};
- 整体代码:
public class