函数式接口
任何接口,如果只包含唯一一个抽象方法,那么它就是一个函数式接口
public interface Runnable {
public abstract void run();
}
对于函数式接口,我们可以通过lambda表达式来创建实现Runnable接口的对象
lambda表达式
Runnable runnable = ()->{
System.out.println("lambda表达式");
};
- 不用创建实现Runnable接口的类
- 没有方法声明和方法名
- 只关注方法体的实现
简化lambda表达式
interface TestA{
void testA(int a);
}
//完整表示
TestA ta = (int a) -> {
System.out.println(a);
};
//简化1:简化参数类型
//也可以简化多个参数类型,不过要简化就都简化,必须加上小括号
ta = (a) ->{
System.out.println(a);
};
//简化2:简化小括号
//多个参数时不能简化
ta = a -> {
System.out.println(a);
};
//简化3:简化花括号
//这种简化只能写一行代码
ta = a -> System.out.println(a);