lambda表达式

lamda表达式

为什么要使用lamda表达式

  • 避免匿名内部类定义过多
  • 可以让你的代码看起来更简洁
  • 去掉一堆没有意义的代码,只留下核心的逻辑。

理解Functional Interface(函数式接口)是学习java8 lamda表达式的关键。

函数式接口的定义:

  • 任何几口,如果只包含唯一一个抽象方法,那么它就是一个函数接口。
  • 对于函数式接口,我们可以通过lamda表达式来创建该接口的对象。

练习代码:

package www.chen.com.lamda;
/*
推导lambda表达式
*/
public class TestLambda {
    //3.静态内部类
    static class Love2 implements ILove{
        @Override
        public void lambda(int a) {
            System.out.println("坚持努力学习2"+a);

        }
    }

    public static void main(String[] args) {
        //接口去new 实现类
        ILove love = new Love();
        love.lambda(10);
        ILove love2 = new Love2();
        love2.lambda(20);

        //4.局部内部类
        class Love3 implements ILove{
            @Override
            public void lambda(int a) {
                System.out.println("坚持努力学习3"+a);
            }
        }
        love = new Love3();
        love.lambda(40);

        //5.匿名内部类,没有类的名称,必需借助接口或者父类
        love = new ILove() {
            @Override
            public void lambda(int a) {
                System.out.println("坚持努力学习4"+a);
            }
        };
        love.lambda(50);

        //6.用lambda表达式简化
        love =  (int a)-> {
            System.out.println("坚持努力学习5"+a);
    };
        love.lambda(60);

    }
}

//1.定义一个函数式接口
interface ILove{

    void lambda(int a);

}

//2.实现类
class Love implements ILove{
    @Override
    public void lambda(int a) {
        System.out.println("坚持努力学习1"+a);

    }
}
上一篇:三天


下一篇:[树链剖分] HDU 6962 I love tree