首页 > 其他分享 >Lambda表达式简介

Lambda表达式简介

时间:2022-11-30 19:31:59浏览次数:42  
标签:return Comparator int 简介 接口 default 表达式 Lambda


什么是Lambda?

:java8的新特性。是个匿名函数。

为什么使用Lambda?

:可以对接口进行非常简洁的实现。

使用Lambda表达式来实现接口
Comparator comparator3 = (a,b) -> a-b;

对比,使用匿名内部类
Comparator comparator2 = new Comparator() {

@Override
public int compare(int a, int b) {
return a - b;
}
};

对比,使用接口实现类
Comparator comparator = new MyComparator();

class MyComparator implements Comparator{

@Override
public int compare(int a, int b) {
return a - b;
}
}

Lambda对接口的要求?

:要求接口中的定义的​​必须要实现的抽象方法只能是一个​​。

java8对接口加了一个新特性:default。修饰接口中的方法,被default修饰的方法可以在接口中有一个默认实现。这样,它的实现类可以去实现它,也可以不去实现它。对lambda没有影响。

使用lambda表达式,新建一个类的时候,必须满足以下三点:

  • 新建的类必须是接口,此接口称为函数式接口
  • 此接口只能有一个非抽象类接口,但是可以使用default参数添加扩展方法
  • 忽略object类方法
//以下接口定义符合函数接口要求
interface Test<T> {
T getT(T a);
default T abc(T a) {
return a;
}
default T abcd(T a) {
return a;
}
}

如何声明一个接口为函数式接口

在接口上使用 @FunctionalInterface 注解,用于修饰函数式接口,接口中的抽象方法只有一个。这样会在接口加入多余的方法的时候就报错。


标签:return,Comparator,int,简介,接口,default,表达式,Lambda
From: https://blog.51cto.com/u_12528551/5900336

相关文章

  • go 正则表达式
    funcmain(){ line:="2022/11/2519:32<DIR>目录" reg:=regexp.MustCompile(`([\d/]+)\s+(\d+:\d+)\s+(<DIR>)\s+(.*)`) ifreg==nil{ panic(......
  • springboot消息之JMS&AMQP简介
    大多应用中,可通过消息服务中间件来提升系统异步通信`扩展解耦能力.    异步处理  应用解耦  流量削峰消息服务中有两个重要概念:消息代理和目的地(m......
  • springboot消息之RabbitMQ简介
    RabbitMQ是一个有erlang开发的AMQP(AavancedMessageQueueProtocol)的开源实现核心概念:Publisher :消息的生产者,也是一个向交换器发布消息的客户端应用程序Mess......
  • 使用正则表达式处理字符串
    参考代码:mportrestrInput='310.1'strList=re.findall('^[\-\+]?\d+\.?\d+$',strInput)print(strList)strInput2='aa310.0.1'strList2=re.search('[\-\+......
  • Python高级-正则表达式-笔记
    1.re模块操作在Python中需要通过正则表达式对字符串进行匹配的时候,可以使用一个模块,名字为re1.re模块的使用过程#coding=utf-8#导入re模块importre#使用mat......
  • 数据结构实验之栈与队列二:一般算术表达式转换成后缀式 sdut-oj
    #include<stdio.h>#include<stdlib.h>#defineSTACK_INIT_SIZE100#defineSTACKINCREMENT100typedefstruct{  char*base;  ......
  • lambda 标准函数
    1、标准函数let,also,with,run和apply1)、let函数,必须让某个对象调用,接收一个Lambda表达式参数,Lambda表达式中的参数为当前调用者,且最后一行代码作为返回值2)、also函数......
  • Spring的AOP简介和Spring中的通知使用方法以及异常
    AOP中关键性概念连接点(Joinpoint):程序执行过程中明确的点,如方法的调用,或者异常的抛出.目标(Target):被通知(被代理)的对象注1:完成具体的业务逻辑通知(Advice):在某个特定的......
  • 大数据框架hadoop安装以及简介
    介绍:Hadoop实现了一个​​分布式文件系统​​​(重点)(HadoopDistributedFileSystem),简称HDFS。HDFS有高​​容错性​​​的特点,并且设计用来部署在低廉的(low-cost)硬件上;......
  • 常量表达式
    1、常量表达式是指值不会改变,并且在编译过程中就能得到计算结果的表达式。2、把变量定义成constexpr的,可以让编译器来验证它是否是常量表达式,如果初始化使用了非常量表达......