Java中的lambda表达式(part1)

一、介绍

  • 什么是Lambda
    • Lambda是Java8添加的新特性,说白了,Lambda是一个匿名函数
  • 为什么使用Lambda
    • 使用Lambda表达式可以对一个接口的方法进行非常简介的实现
  • Lambda对接口的要求
    • 虽然可以使用Lambda表达式对某些接口进行简单的实现,但是并不是所有的接口都可以用Lambda表达式来实现,要求接口中定义的必须要实现的抽象方法只能是一个
  • default
    • 在Java8中,对接口加了一个新特性:default。可以使用default对接口进行修饰,被修饰的方法在接口中可以默认实现

一、函数式编程思想

函数式思想则尽量忽略面向对象的复杂语法:“强调做什么,而不是以什么形式去做”,而我们要学习的Lambda表达式就是函数式思想的体现

二、Lambda表达式的标准格式

一、格式
(parameters) -> expression
    或
(parameters) -> {statements;}
  • ()用来描述参数列表
  • {}用来描述方法题,有时可以省略
  • ->lambda运算符
二、前提

有一个接口,且接口中有且仅有一个抽象方法

三、实例

/**
 *  无参无返回值接口
 */
@FunctionalInterface
interface LambdaNoneReturnNoneParmeter{
    void test();
}

/**
 *  无返回值有单个参数
 */
@FunctionalInterface
interface LambdaNodeReturnSingleParmeter{
    void test(int n);
}

/**
 *  无返回值,多个参数的接口
 */
@FunctionalInterface
interface LambdaNodeReturnMutipleParmeter{
    void test(int a,int b);
}

/**
 *  有返回值,无参数接口
 */
@FunctionalInterface
interface
LambdaSingleReturnNoneParmeter{
    int test();
}

/**
 *  有返回值 有单个参数的接口
 */
@FunctionalInterface
interface LambdaSingleReturnSingleParmeter{
    int test(int n);
}

/**
 *  有返回值 有多个参数的接口
 */
@FunctionalInterface
interface LambdaSingleReturnMutipleParmeter{
    int test(int a, int b);
}

public class Demo {
    public static void main(String[] args) {
        // 需求1:无参数无返回值
        LambdaNoneReturnNoneParmeter lambda1 = () ->{
            System.out.println("hello worle");
        };
        lambda1.test();

        // 需求2:无返回值 单个参数
        LambdaNodeReturnSingleParmeter lambda2 = (str) ->{
            System.out.println("参数是:"+str);
        };
        lambda2.test(10);

        // 需求3:无返回值 多个参数
        LambdaNodeReturnMutipleParmeter lambda3 = (int a, int b)->{
            System.out.println("参数和是:"+(a+b));
        };
        lambda3.test(10,20);

        // 需求4: 有返回值,无参数
        LambdaSingleReturnNoneParmeter lambda4 = () ->{return 66;};
        int result4 = lambda4.test();
        System.out.println(result4);

        // 需求5:有返回值 单个单数
        LambdaSingleReturnSingleParmeter lambda5 = (int a)->{return a*2;};
        int result5 = lambda5.test(10);
        System.out.println(result5);

        // 需求6:有返回值 多个参数
        LambdaSingleReturnMutipleParmeter lambda6 = (int a, int b)->{return a+b;};
        int result6 = lambda6.test(10,20);
        System.out.println(result6);
    }

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值