函数式编程@FunctionalInterface
来源:互联网 发布:数据分析员的岗位职责 编辑:程序博客网 时间:2024/05/17 08:14
函数式接口是Java8对java8对一类特殊类型的接口的称呼.这类接口定义了唯一的抽象方法的接口.函数式接口代表一种契约,一种对某个特定函数类型的契约.在它出现的地方,实际期望一个符合契约要求的函数.这个注解主要用于编译器错误检查,加上该注解后,当写的接口不符合函数式接口定义的时候会报错
JDK8之前已有的函数式接口
java.lang.Runnablejava.util.concurrent.Callablejava.security.PrivilegedActionjava.util.Comparatorjava.io.FileFilterjava.nio.file.PathMatcherjava.lang.reflect.InvocationHandlerjava.beans.PropertyChangeListenerjava.awt.event.ActionListenerjavax.swing.event.ChangeListener
java8新定义的函数式接口
Predicate -- 传入一个参数,返回一个bool结果, 方法为boolean test(T t)Consumer -- 传入一个参数,无返回值,纯消费。 方法为void accept(T t)Function -- 传入一个参数,返回一个结果,方法为R apply(T t)Supplier -- 无参数传入,返回一个结果,方法为T get()UnaryOperator -- 一元操作符, 继承Function,传入参数的类型和返回类型相同。BinaryOperator -- 二元操作符, 传入的两个参数的类型和返回类型相同, 继承BiFunction
用法
函数式接口可以额外定义多个抽象方法,但是这些抽象方法签名必须和Object的public方法一样.为什么要这样规定呢?原因在于接口最终都有确定的类实现而类的最终父类是Object.因此函数式接口可以定义Object的public方法
@FunctionalInterfacepublic interface ObjectMethodFunctionalInterface { void count(int i); String toString(); int hashCode(); boolean equals(Object o);}
示例
@FunctionalInterfaceinterface FunctionalException { void apply(int i) throws Exception;}public class FunctionalTest { public static void main(String[] args) { FunctionalException functionalInterface = i -> { System.out.println("apply"); }; try { functionalInterface.apply(10); } catch (Exception e) { e.printStackTrace(); } }}
阅读全文
0 0
- 函数式编程@FunctionalInterface
- java8函数式编程之一:@FunctionalInterface注解
- java8:@FunctionalInterface函数式接口注解
- java8 函数式接口(FunctionalInterface) [一]
- java8 函数式接口(FunctionalInterface) [二]
- JDK8 注解:函数式接口@FunctionalInterface
- JDK8新特性:函数式接口@FunctionalInterface的使用说明
- Java8新特性之 函数式接口FunctionalInterface详解
- JDK8新特性:函数式接口@FunctionalInterface的使用说明
- java8学习总结——函数式接口@FunctionalInterface
- 学习笔记4:java 1.8 函数式接口 @FunctionalInterface 注解
- functionalInterface
- 使用Java8的函数式接口@FunctionalInterface实现简单异步调用
- jdk8新特性:Lambda表达式(也称为闭包、可传递的匿名函数)与函数式接口@FunctionalInterface
- Annotation-->@FunctionalInterface
- 函数式编程
- 函数式编程
- 函数式编程
- $.ajax()方法详解
- 聊天机器人教学:使用Dialogflow (API.AI)开发 iOS Chatbot App
- RAC 简单举例 注册按钮
- 3.1(2)
- 使用Python解析MNIST数据集(IDX文件格式)
- 函数式编程@FunctionalInterface
- Model One-to-One Relationships with Embedded Documents
- Deep Reinforcement Learning for Dialogue Generation阅读笔记
- 桌面系统(web前端)jQuery制作Web桌面系统界面类似WebQQ桌面布局
- Kafka 介绍
- python实用工具集
- java-Collection(Set)
- 职业分类明细1.0
- 贫血模型和充血模型