java学习之--lambda表达式基本应用

lambda表达式

在lambda表达式中,没有⽅法的名字,只需要关⼼参数和⽅
法体。
参数:定义在⼩括号中
⽅法体:定义在⼤括号中
->:lambda运算符,分隔参数部分和⽅法体部分(读 goes)

注:使⽤lambda表达式简洁的实现接⼝,简化接⼝实现,和抽象类没关系

@FunctionalInterface 注解 验证一个接口是不是函数式接口

函数式接口:如果⼀个接⼝中,有且只有⼀个⽅法,是实现类必须要重写实现的,这样的接⼝,叫做函数式接⼝

lambda表达式存在的形式:
无参无返回值
@FunctionalInterface
public interface NoneReturnMutipleParameter {
void test(int a, int b);
}

// 1. 无参、无返回值接口实现
NoneReturnNoneParameter lambda1 = () -> {
System.out.println(“lambda1”);
};
lambda1.test();

无参有返回值

一个参数没有返回值
// 2. 有参数、无返回值

@FunctionalInterface
public interface SingleReturnNoneParameter {
int test();
}

    NoneReturnSingleParameter lambda2 = (int a) -> {
        System.out.println("lambda2 : " + a);
    };
    lambda2.test(10);

一个参数有返回值

多个参数没有返回值

多个参数有返回值

// 有参数、有返回值
@FunctionalInterface
public interface SingleReturnSingleParameter {
int test(int a);
}

    SingleReturnMutipleParameter lambda3 = (int a, int b) -> {
        System.out.println("lambda3");
        return a + b;
    };
    int result = lambda3.test(10, 20);
    System.out.println(result);

lambda表达式的语法精简
参数精简:

  1. 在lambda表达式中,参数的类型是可以省略的。
    如果有多个参数,所有的参数的类型要么同时省略,要么同时不省略。
    ambda1 = (a, b) -> {
    return a + b;
    };

  2. 在lambda表达式中,如果参数的数量只有一个,此时小括号可以省略。
    lambda1 = a-> {
    return a;
    };

方法体精简:

  1. 如果方法体中的代码只有一行,则大括号可以省略。
    SingleReturnSingleParameter lambda1 = x -> x * x;
  2. 如果方法体中唯一的一行代码是返回语句,则省略掉大括号的同时,必须同时省略掉return

NoneReturnMutipleParameter lambda2 = (x, y) -> System.out.println(x + y);

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值