资讯专栏INFORMATION COLUMN

Functional接口简介

adam1q84 / 1443人阅读

摘要:现实世界中的例子多线程中用于执行无返回结果的接口,只有一个方法,很简单的嘛使用示例在主线程外异步地执行任务使用表达式彬哥一行代码还是做了不少事情的嘛创建了一个异步任务。纳尼哪里没错,就是彬哥,这是一个表达式。

Functional接口简介

什么是Functional接口?

包含有单一抽象方法(Single Abstract Method)的接口就是Functional接口。简单来说,就是有且只有一个非default方法的接口。为什么default方法不被计算进去呢?原因也很简单,因为default方法是已经有了一个实现了啊,所以并不是抽象的。

所有Functional接口都建议打上@FunctionalInterface注解。
这样做有两个好处:

明确地表明了这个接口作用,告诉调用方,“我”可以作为lambda表达式使用。

借助编译器来提前暴露错误。比如,你原本想写一个Functional接口以便可以在lambda表达式中使用,但实际上这个接口却包含了一个以上的非default方法,这时编译器就会提示你,“小伙,你肯定弄错了什么,这不是Functional接口啊”。

现实世界中的例子

多线程中用于执行无返回结果的Runnable接口,只有一个run方法,很“简单”的嘛!

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

使用示例

在主线程外异步地执行任务(使用lambda表达式):

 public static void main(String[] args) {
   new Thread(() -> System.out.println("Hello 彬哥!")).start();
 }

一行代码还是做了不少事情的嘛:

创建了一个异步任务Runnable。纳尼?哪里?没错, 就是() -> System.out.println("Hello 彬哥!"),这是一个lambda表达式。

使用上面创建的任务,来构造了一个新的线程,new Thread()

启动了这个线程,start()

小结
只有一个抽象方法的接口是Functional接口,要打上@FunctionalInterface注解。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/71725.html

相关文章

  • Function相关接口简介

    摘要:相关接口简介什么是接口,它代表这样的一个函数,接受一个参数,然后返回一个结果。参数和返回值相互转化的个作为参数的和个作为返回值的相互组合去掉重复的嗯,又到种接口,,,,,。 Function相关接口简介 什么是Function接口? interface Function,它代表这样的一个函数,接受一个参数,然后返回一个结果。 Function接口的functional方法 R app...

    gotham 评论0 收藏0
  • Java8: Functional Interface and Lambda Expression

    摘要:写在前面最近在看实战感觉这本书的排版纸质内容真的都超级棒个人觉得这本书还是很值得一读本文简单或详细介绍一下的和表达式函数式接口是在才开始引入的首先看一下普通接口和函数式接口的区别普通接口指的是一些具有相同属性和行为的类的抽象函数式接口也是同 写在前面: 最近在看,感觉这本书的排版,纸质,内容真的都超级棒,个人觉得这本书还是很值得一读.本文简单或详细介绍一下Java8的Functiona...

    sunnyxd 评论0 收藏0
  • Java8 lambda支持

    摘要:函数式编程说前,先理解下什么是函数式编程,如果你是个纯程序员,而且之前一直是没有使用过,可能还没有使用过这种编程方式。表达式可以表示闭包注意和数学传统意义上的不同。意思就是说,只要是接口类型,我们都可以传入表达式。在包下定义了各种函数接口 函数式编程 说lambdas前,先理解下什么是函数式编程,如果你是个纯Java程序员,而且之前一直是没有使用过Java8,可能还没有使用过这种编程方...

    Betta 评论0 收藏0
  • Functional CSS: 从试着改进可重用CSS做起

    摘要:从试着改进可重用做起泊学视频回想起每次更新泊学网站,最让我头疼的,就是改写。于是我几乎不假思索的写出了这样的模板它同样包含了一个封面图,一个标题和一个简介。 从试着改进可重用CSS做起 泊学4K视频 回想起每次更新泊学网站,最让我头疼的,就是改写CSS。在不同的阶段,对CSS不断深入的理解,对网站内容的调整,对UI的重用需求,都影响着CSS的编写方式,因此,稍不留神,你的代码理解就会充...

    microelec 评论0 收藏0
  • 不得不知的责任链设计模式

    世界上最遥远的距离,不是生与死,而是它从你的世界路过无数次,你却选择视而不见,你无情,你冷酷啊...... showImg(https://segmentfault.com/img/remote/1460000019550563); 被你忽略的就是责任链设计模式,希望它再次经过你身旁你会猛的发现,并对它微微一笑...... 责任链设计模式介绍 抽象介绍 初次见面,了解表象,深入交流之后(看完文中的...

    raise_yang 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<