lambda表达式

lambda表达式的推理

  1. 定义一个函数接口

  2. 实现类

  3. 静态内部类

  4. 局部内部变量

  5. 匿名内部类,没有类的名字,必须用接口或者父类

  6. lambda表达式


代码的实现:

package com.wang1.demo04;
//推导lambdal表达式
public class TestLambdal {
   //3.静态内部类
   static class Like2 implements ILike {
       @Override
       public void lambdal() {
           System.out.println("i like lambdal2");
      }
  }

   public static void main(String[] args) {
       ILike like = new Like();
       like.lambdal();
       like = new Like2();
       like.lambdal();
       //4.局部内部变量
       class Like3 implements ILike {
           @Override
           public void lambdal() {
               System.out.println("i like lambdal3");
          }
      }
       like = new Like3();
       like.lambdal();
       //5.匿名内部类,没有类的名字,必须借用接口或者父类
       like=new ILike() {
           @Override
           public void lambdal() {
               System.out.println("i like lambdal4");
          }
      };
       like.lambdal();
       //6.用lanbdal简化
        like=()->{
           System.out.println("i like lambdal5");
      };
        like.lambdal();

  }
}
//1.定义一个函数接口
interface ILike{
   void lambdal();
}
//2.实现类
class Like implements ILike{
   @Override
   public void lambdal() {
       System.out.println("i like lambdal");
  }
}

 

lambda表达式的简化

package com.wang1.demo04;

public class TestLambdal2 {
   public static void main(String[] args) {
       ILove love=new ILove() {
           @Override
           public void Love(int a, int b) {

          }
      };

        love= (int a,int b)->{
               System.out.println("i love you-->"+a);
          };
       //1.简化1:去掉参数类型
       love=(a,b)->{
           System.out.println("i love you-->"+a);
      };
       //简化2:去掉括号
       love=(a,b)->{
           System.out.println("i love you-->"+a);
      };
       //简化3:去掉花括号
       love=(a,b)-> System.out.println("i love you-->"+a+" and "+"you love i-->"+b);
       //总结
           //lambda表达式只能有一行代码的情况下才能简化成为一行,如果有多行,就用代码块包裹
           //前提是接口为函数式接口
           //多个参数也能去掉参数类型,要去掉就都去掉,必须加括号
       love.Love(520,250);
  }
}
interface ILove{
   void Love(int a,int b);
}

 

posted @ 2021-11-02 08:27  我自己12138  阅读(120)  评论(0)    收藏  举报