1、函数式接口
函数式接口是只包含一个方法的接口,Java中的lambda无法单独出现,它需要一个函数式接口来盛放,lambda表达式方法体其实就是函数接口的实现。可以使用@FunctionalInterface这个注解来声明一下便于我们团队人员读取代码,不是必须的当符合函数式接口标准时,虚拟机会自动判断的
接口 | 参数 | 返回类型 | 描述 |
---|---|---|---|
Predicate<T> | T | boolean | 用于判别一个对象。比如求一个人是否为男性 |
Consumer<T> | T | void | 用于接收一个对象进行处理但没有返回,比如接收一个人并打印他的名字 |
Function<T, R> | T | R | 转换一个对象为不同类型的对象 |
Supplier<T> | None | T | 提供一个对象 |
UnaryOperator<T> | T | T | 接收对象并返回同类型的对象 |
BinaryOperator<T> | (T, T) | T | 接收两个同类型的对象,并返回一个原类型对象 |
2、lambda语法
有三部分
1、一个括号内用逗号分隔的形式参数,参数是函数式接口里面方法的参数,只有一个参数可以省略括号
2、一个箭头符号:->
3、方法体,可以是表达式和代码块。
连载中ing..................