1,为什么学习lamada表达式
- 避免内部类定义过多
- 实质属于函数式编程
函数式接口的定义:
- 任何接口,如果只包含唯一一个抽象方法,那么他就是一个函数式接口
public interface Runnable(){ public abstract void run(); }
- 对于函数式接口,我们可以通过lamada表达式来创建该接口的对象。
总结:使用lamada表达式
- lamada表达式只有在只有一行代码的情况下,才能简化成一行,如果是多行必须使用代码块{}(花括号)包裹
- 多个参数也可以去掉参数类型,要去掉都去掉,必须加上括号。
- 前提是函数式接口
package com.zzuli.lamada;
public class TestLamada {
public static void main(String[] args) {
//使用来匿名内部类来实现ILike接口
ILike iLike=new ILike(){
@Override
public void find(String str) {
System.out.println("hello world"+str);
}
};
iLike.find("迪迦");
// 简化第一种方式 使用lamada表达式来进行实现接口并且重写方法
ILike iLike2=(String str)->{
System.out.println("hello world"+str);
};
iLike2.find("艾斯");
//简化第二种方式,使用lamada表达式
ILike iLike3=str -> {
System.out.println("hello world"+str);
};
iLike3.find("蒙面超人");
//简化lamada表达式第三种方式
ILike iLike4=str -> System.out.println("hello world"+str);
iLike4.find("盖亚");
}
}
//创建一个函数式接口
interface ILike{
void find(String str);
}