Java基础-lambda表达式推导

lambda表达式

  1. 作用:
    1. 避免内部类定义过多
    2. 使代码看起来更加的简洁
    3. 去掉了一堆每有意义的代码,只留下核心的逻辑
  2. 代码实现
package com.gaopeng.lambda;

public class Demo01 {
    //通过一个类实现接口
    static class Lam2 implements Test{
        public void test(){
            System.out.println("Lam2实现接口,被调用");
        }
    }
    public static void main(String[] args) {
        //创建Lam对象,操作其中的方法---第一种方法
        new Lam().test();
        //第二种方法静态内部类
        new Lam2().test();
        //第三种方法局部内部类
        class Lam3 implements Test{
            public void test(){
                System.out.println("Lam3实现接口,被调用");
            }
        }
        new Lam3().test();
        //第四种方法:匿名内部类,没有类的名称,必须借助接口或者父类实现,相当于直接new了一个接口省去了实现接口的过程
        new Test() {
            @Override
            public void test() {
                System.out.println("lam4实现接口,被调用");
            }
        }.test();

        //第五种方法:lambda表达式实现,这里是需要指定类型的,不然代码不成立
        Test t = () -> {
            System.out.println("lam5实现接口,被调用");
        };
        t.test();
    }
}

//创建一个接口
interface Test{
   public abstract void test();
}
//通过一个类实现接口
class Lam implements Test{
    public void test(){
        System.out.println("Lam实现接口,被调用");
    }
}
  1. 简化lambda表达式
package com.gaopeng.lambda;

public class Demo02 {
    public static void main(String[] args) {
        //lambda表达式简化
        Test1 t1=(int a,int b)->{
            System.out.println("传递参数");
        };
        //简化一
        Test1 t2=(a,b)->{
            System.out.println("简化参数类型");
        };
        //简化二
        Test1 t3=(a,b)->System.out.println("简化花括号,只能有一行代码才能简化为一行");
        //简化三
        Test2 t4=a->System.out.println("简化括号,只能传递一个参数");
        t1.test(1,1);
        t2.test(2,2);
        t3.test(3,3);
        t4.test(1);
    }
}

//创建一个接口
interface Test1{
    public abstract void test(int a,int b);
}
//创建一个接口
interface Test2{
    public abstract void test(int a);
}

Java基础-lambda表达式推导

上一篇:腾讯、网易必问的20道题Java面试题,职场中的中年危机


下一篇:Java 重写小练习