Lembda

Lembda

package com.zishi.lesson3;

/*
推导Lambdal表达式
*/
public class TestLembdal {

   //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();

       like = new Like2();
       like.lambda();

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

       like = new Like3();
       like.lambda();

       //5.匿名内部类:没有类的名称,必须借助接口或者父类实现
       like = new ILike() {
           @Override
           public void lambda() {
               System.out.println("i like lambda4");
          }
      };
       like.lambda();

       //6.用lambda()简化
       like = ()->{
           System.out.println("i like lambda5");
      };
       like.lambda();
  }
}

//1.定义一个函数式接口:只有一个抽象类方法
interface ILike{
   void lambda();

}

//2.实现类
class Like implements ILike{
   @Override
   public void lambda() {
       System.out.println("i like lambda");
  }
}
package com.zishi.lesson3;

public class TestLembdal2 {

   public static void main(String[] args) {

       ILove love = null;

       //1.lambda表示简化
//       ILove love = (int a)->{
//           System.out.println("i love -->"+a);
//       };

//       //2.简化括号
//       love = a -> {
//           System.out.println("i love -->"+a);
//       };

       //3.简化:去掉花括号
       love = (a,b,c) -> System.out.println("i love -->"+a+b+c);


       love.love(520,520,520);

       //总结:
       /*
       lambda表达式只能有一行代码的情况下,才能简化成一行,如果有一行,那么就用代码快包裹
       前提是接口为函数式接口
       多个参数也可以去掉参数类型,要去掉就都去掉,必须加上括号
        */
  }
}

interface ILove{
   void love(int a,int b,int c);
}

 

posted @ 2021-09-01 23:28  子时未临  阅读(81)  评论(0编辑  收藏  举报