Lambda表达式详解

特点

  • Lambda表达式时JDK8新推出的功能,一种函数式编程
  • 实现的接口必须为函数式接口(即接口有且仅有一个方法)

主要功能

  • Lambda表达式时JDK8新推出的功能,一种函数式编程
  • 避免匿名内部类定义过的过多
  • 去掉无意义代码,留下核心逻辑

实例

Lambd表达式通式:

接口对象 = (参数)->{方法体};

public class LambdaTest {
    static class Like2 implements ILike{
        @Override
        public void Fun() {
            System.out.println("这是静态内部类");
        }
    }

    public static void main(String[] args) {
        class Like3 implements ILike{
            @Override
            public void Fun() {
                System.out.println("这是局部内部类");
            }
        }

        ILike iLike;   //接口对象
        iLike = new Like();//外部实现类
        iLike.Fun();

        iLike = new Like2();//静态内部类
        iLike.Fun();

        iLike = new Like3();//局部内部类
        iLike.Fun();

        iLike = new ILike() { //静态内部类
            @Override
            public void Fun() {
                System.out.println("这是匿名内部类");
            }
        };
        iLike.Fun();

        iLike = () ->{ //Lambda表达式
            System.out.println("这是Lambda表达式");
            };

        iLike.Fun();
    }
}

interface ILike{  //函数式接口
    void Fun();
}

class Like implements ILike{
    @Override
    public void Fun() {
        System.out.println("这是外部类");
    }
}

在这里插入图片描述

可以看到Lambda表达式是外部类实现类->静态内部类->局部内部类->匿名内部类->Lambd表达式的一个逐步简化过程;

带参数Lambda表达式

public class LambdaTest02 {
    public static void main(String[] args) {
        ILike2 iLike2 = (i,j)->{  //参数类型可以简化不写
            System.out.println(i+j);
        };
        iLike2.Fun2(123,456);
    }
}


interface ILike2{
    void Fun2(int i,double j);
}

在这里插入图片描述
补充:

  1. Lambd表达式参数列表中,参数类型可以简化不写
  2. 在参数只有一个的前提下,参数列表的括号可以简化不写
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值