lambda表达式的推导

0、写在前面

学习多线程过程中解除到lambda表达式,现在总结一下。

1、 lambda表达式

为什么使用lambda表达式

  • 避免匿名内部类定义过多
  • 可以简洁代码
  • 去掉没意义的代码,留下核心的逻辑
  • 其实属于函数式编程的概念
    在这里插入图片描述
函数式接口:任何接口,如果只包含一个抽象方法,那么它就是一个函数式接口

直接上代码,感受各种类

package com.laoongcai.gitxuexi.lambda;

/**
 * @Author: chen
 * @Description: 推导lambda表达式
 * @Date: Created in 16:25 2020/11/3
 * @Modified By:
 */

public class testLambda {
    // 3.静态内部类
    static class Like2 implements ILike{
        @Override
        public void lambda() {
            System.out.println(" i like lambda2!");
        }
    }

  public static void main(String[] args) {
      // 测试 常规方式
      ILike like = new Like();
      like.lambda();

      // 测试 静态内部类
      ILike like2 = new Like2();
      like2.lambda();

      // 4.局部内部类
      class Like3 implements ILike{
          @Override
          public void lambda() {
              System.out.println(" i like lambda3!");
          }
      }
      // 测试 局部内部类
      ILike like3 = new Like3();
      like3.lambda();

      // 5.匿名类
      // 测试 匿名类
      new ILike(){
          @Override
          public void lambda() {
              System.out.println(" i like lambda4!");
          }
      }.lambda();
//      like4.lambda();

      // 6.简化lambda:对于函数式接口,我们可以通过lambda表达式来创建该接口的对象
      like = ()->{
          System.out.println(" i like lambda5!");
      };
      // 测试 lambda表达式
      like.lambda();
  }
}

// 1.定义一个函数式接口:任何接口,如果只包含一个抽象方法,那么它就是一个函数式接口
interface ILike{
    // 隐式申明抽象
    void lambda();
}

// 2.实现类
class Like implements ILike{

    @Override
    public void lambda() {
    System.out.println(" i like lambda!");
    }
}

2、继续简化

package com.laoongcai.gitxuexi.lambda;

/**
 * @Author: chen
 * @Description:
 * @Date: Created in 16:59 2020/11/3
 * @Modified By:
 */
public class testLambda2 {

  public static void main(String[] args) {
      // 局部内部类
      class Love implements Ilove{
          @Override
          public void love(int a) {
              System.out.println("i love you --> "+a+" --> 局部内部类");
          }
      }
      Love love = new Love();
      love.love(10);


      // 匿名类
      new Ilove(){
          @Override
          public void love(int a) {
              System.out.println("i love you --> "+a+" --> 匿名类");
          }
      }.love(11);

      // lambda
      Ilove ilove = null;
      // lambda表达式1
      ilove = (int a)->{
          System.out.println("i love you --> "+a+" --> lambda表达式1");
      };
      ilove.love(12);

      // lambda表达式2
      ilove = (a)->{
          System.out.println("i love you --> "+a+" --> lambda表达式2");
      };
      ilove.love(13);

      // lambda表达式3
      ilove = a->{
          System.out.println("i love you --> "+a+" --> lambda表达式3");
      };
      ilove.love(14);

      // lambda表达式4
      ilove = a->System.out.println("i love you --> "+a+" --> lambda表达式3");
     
      ilove.love(15);

  }
}

interface Ilove{
    void love(int a);
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值