Lambda
为什么用lambda表达式
- 避免匿名内部类过多
- 让代码看起来简洁
- 去掉一堆没有意义的代码,只留下逻辑的核心
函数式接口
任何接口,如果只包含了唯一一个抽像方法 ,那他就是一个函数式接口
public interface Runnable{
public abstract void run();
}
总结
- lambda表达式只能有一行代码的情况下才能简化成一行,如果有多行就必须要用代码快包裹
- 前题是接口必须是函数式接口
- 多个参数也可以去掉参数类型,要去掉就都去掉,必须加上括号
package com.xiong;
public class TextLambda {
// static class MyLove implements Ilove {
//===静态內部类
// @Override
// public void love(int a) {
// System.out.println("i love you-->" + a);
// }
public static void main(String[] args) {
//===局部内部类
// static class MyLove implements Ilove {
// @Override
// public void love(int a) {
// System.out.println("i love you-->" + a);
// }
// =====匿名内部类
// Ilove love=new Ilove() {
// @Override
// public void love(int a) {
// System.out.println("i love you-->" + a);
// }
// };
// love.love(520);
//Lamnbda表达式
Ilove love=a-> {
System.out.println("i love you-->" + a);
};
love.love(502);
}
}
interface Ilove{
void love(int a);
}
//class MyLove implements Ilove{
// @Override
// public void love(int a) {
// System.out.println("i love you-->"+a);
// }
//}