博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java 8 函数式接口 - Functional Interface
阅读量:6913 次
发布时间:2019-06-27

本文共 1194 字,大约阅读时间需要 3 分钟。

hot3.png

Java 8为函数式接口引入了一个新注解@FunctionalInterface,

  • 主要用于编译级错误检查,加上该注解,
    • 当你写的接口不符合函数式接口定义的时候,编译器会报错。
    • @FunctionalInterface    interface GreetingService     {        //只有一个抽象方法        void sayMessage(String message);    }

      所谓的函数式接口,

      • 当然首先是一个接口,

      • 然后就是在这个接口里面只能有一个抽象方法

函数式接口用途

  • 主要用在Lambda表达式方法引用(实际上也可认为是Lambda表达式)上。

函数式接口里允许定义默认方法

  • @FunctionalInterface    interface GreetingService    {        void sayMessage(String message);        default void doSomeMoreWork1()        {            // Method body        }        default void doSomeMoreWork2()        {            // Method body        }    }

函数式接口里允许定义静态方法

  • @FunctionalInterface    interface GreetingService     {        void sayMessage(String message);        static void printHello(){            System.out.println("Hello");        }    }

函数式接口里允许定义java.lang.Object里的public方法

  • @FunctionalInterface    interface GreetingService      {        void sayMessage(String message);                @Override        boolean equals(Object obj);    }

JDK中的函数式接口举例

  • java.lang.Runnable,
  • java.awt.event.ActionListener, 
  • java.util.Comparator,
  • java.util.concurrent.Callable
  • java.util.function包下的接口,如Consumer、Predicate、Supplier等

转载于:https://my.oschina.net/u/3847203/blog/3028679

你可能感兴趣的文章
BZOJ3152[Ctsc2013]组合子逻辑——堆+贪心
查看>>
大型网站技术架构(四)网站的高性能架构
查看>>
添加非Oracle用户到dba, oinstall组
查看>>
我的友情链接
查看>>
OpenStack Swift Account Reaper
查看>>
How Linux Works
查看>>
Redis应用学习——Redis Cluster的集群伸缩
查看>>
pfsense远程管理
查看>>
highcharts中数据过多时,横坐标上的标签无法正常显示解决
查看>>
AWS Cloudformation的相关概念
查看>>
The type promotion rules (类型提升规则,以及类型转换规则)
查看>>
iOS开发多线程篇---多线程基础介绍和创建
查看>>
Windows Server 2012 R2在桌面上显示计算机/网络图标
查看>>
testNG
查看>>
windows7下配置nginx
查看>>
latch: library cache pin等待事件
查看>>
greenDAO系列4--构建模型
查看>>
Java多线程开发技巧
查看>>
4.MySQL Proxy
查看>>
MAC outlook achrive (导出或手动存档 Outlook 项目)
查看>>