Lambda式表达式总结

Lambda式表达式总结

一、简介

–/ 目的

为了简化大量使用匿名内部类的情况,jdk8提供了lambda表达式;


–/ 使用前提
必须要是函数型接口;


--/ 函数型接口

形式上:只有一个必须要被重写的方法的接口;

ps:我们可以给接口加上注解:@FunctionalInterface来检查当前接口是否满足函数型接口;

—/ 示例

@FunctionalInterface
public interface Runnable {
    void run();
}

二、语法

–/ 格式

( 形参1 , 形参2 , …… )->{
    方法体……
}

–/ 说明

  • ( ): 对应要重写的抽象方法的参数列表;
  • { } : 对应要重写的抽象方法的方法体;
  • 当要重写的抽象方法有形参的时候,形参的数据类型可以省略不写,即( )中的数据类型可以省略不写;
  • 当要重写的抽象方法只有一个形参的时候,( )可以省略不写;
  • 当要重写的抽象方法的方法体中只有一条语句时:{ }可以省略不写;
  • 当要重写的抽象方法的方法体中只有一条语句,并且这条语句是return语句的时:关键字return{ }可以省略不写;

三、示例

–/ Test.java

public class Test {

    public static void main(String[] args) {

        //匿名内部类形式
        Runnable run01 = new Runnable() {
            @Override
            public void run(String name) {

            }
        };

        //1、原来的匿名内部类可以换成Lambda表达式的形式
        Runnable run02 = (String name) -> {
            System.out.println(name + "会跑");
        };

        //2、当()内有形参的时候:数据类型可以省略不写;
        Runnable run03 = (name) -> {
            System.out.println(name + "会跑");
        };

        //3、当{ }内只有一条语句的时候:{ }可以省略不写;
        Runnable run04 = (name) -> System.out.println(name + "会跑");

        //4、当()内只有一个参数的时候:()可以省略不写;
        Runnable run05 = name -> System.out.println(name + "会跑");

        //5、当抽象方法有返回值,且{ }内只有一条语句,这条语句是return语句时:
        //  { } 和 关键字return可以省略不写;
        Nullable nullable = a -> true;
    }


    @FunctionalInterface
    interface Runnable {
        void run(String name);
    }

    @FunctionalInterface
    interface Nullable {
        boolean isNull(Object a);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值