首页 > 编程知识 正文

jdk7新特性(jdk12)

时间:2023-05-05 01:48:17 阅读:79480 作者:1714

什么是函数型接口

首先,让我们来看看如何创建传统线程

看看使用函数型接口的写法吧

thread T2=new thread ((-system.out.println ) ) T2 ); T2 .开始(;

Runnable接口是用于查看Runnable源代码的函数型接口,因此可以使用Lambda表达式直接编写。

@ functionalinterfacepublicinterfacerunnable { publicabstractvoidrun (; }

发现此接口具有函数类型接口的定义注释: @FunctionalInterface指示此接口是函数类型接口。

@ documented @ retention (retention policy.runtime ) target ) elementtype.type ) public @ interfacefunctional interface {

除了Runnbale接口外,JDK8还将Comparator、Callable等接口定义为函数型接口,并对此进行了注释。

内置函数型接口

JDK8提供了几个内置函数接口,许多API都使用它来满足大多数APP应用程序。

自定义函数型接口

1、定制函数型接口

@ functionalinterfacepublicinterfacecalcinterfacen,v { v操作(nn1,Nn2 ); }

这里只有一种抽象的方法。 @FunctionalInterface评论可以不写,为什么可以往下看?

2、新建引用函数型接口的类

3、测试函数型接口

最终输出:

2313023130

函数型接口规格

1,@FunctionalInterface被标识为一个函数类型接口,只能在只有一个抽象方法的接口中使用。

2、接口的静态方法、缺省方法和覆盖Object类的方法不是抽象方法。

3,@FunctionalInterface注释不是必需的。 如果接口中只有一个抽象方法可以不写,则默认情况下,它符合函数接口,但建议您写所有注释。 编译器将检查该接口是否符合函数型接口的规范。

举例说明

正确的函数型接口。

@ functionalinterfacepublicinterfacecalcinterfacen,v { v操作(nn1,Nn2 ); }

可以添加几个符合函数表达式的方法。 编译器也不报告错误。

这没有使用@FunctionalInterface函数类型接口。 有两个抽象方法,不能用于Lambda表达式。

publicinterfaceCalcInterfaceN,v { v操作(nn1,Nn2 ); v操作2 (nn1、Nn2 ); }

使用具有这两个抽象方法的@FunctionalInterface注释编译函数型接口将报告错误。

@ functionalinterfacepublicinterfacecalcinterfacen,v { v操作(nn1,Nn2 ); v操作2 (nn1、Nn2 ); }

这没有抽象的方法,编译后报告错误。

publicinterfaceCalcInterfaceN,V{}

推荐的书籍

Spring Cloud微服务实战

由JavaEE开发的顶级选手Spring Boot实战

快速构建SpringBoot暴露微服务体系

SpringBoot实战

熟悉Spring 4.x企业APP应用开发实战

所有高清电子书下载请到274435854组。

建议您阅读

2017年,推荐10本Java程序猴子经典良书

高级Java必看的10本书

Java架构师一定要读的十本书

看完有收获吗? 分享到朋友圈给更多的人吧。

架构之路、顶级精选、每日干货,喜欢就关注收藏吧!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。