![](https://i-blog.csdnimg.cn/blog_migrate/a5cedd9e4b7339bfe53256444156d95b.png)
函数式接口就是只有一个方法的接口
![](https://i-blog.csdnimg.cn/blog_migrate/eea507fa199b5807350f7e8d4c0d1b0d.png)
Function
![](https://i-blog.csdnimg.cn/blog_migrate/3d5b1f6f4177e86028df4c555e541f2d.png)
传入参数T返回参数R
/**
* @author wuyimin
* @create 2021-07-08-22:14
* @description 函数型接口 只要是函数式接口就可以用lambda表达式简化
*/
public class Demo {
public static void main(String[] args) {
//工具类,输出输入的值
// Function function = new Function<String,String>() {
// @Override
// public String apply(String o) {
// return o;
// }
// };
//不加泛型就可以输出任意值 lambda表达式参数为一个的时候括号也能去掉
Function<String,String> function =(str)->{return str;};
System.out.println(function.apply("123"));//输出输入的值
}
}
Predicate
![](https://i-blog.csdnimg.cn/blog_migrate/aeacc3e69c65cdfadd7e1c846e5c5e45.png)
/**
* @author wuyimin
* @create 2021-07-08-22:21
* @description 断定型接口,有一个输入参数,返回值只能是boolean
*/
public class Demo02 {
public static void main(String[] args) {
// //判断字符串是否为空
// Predicate<String> predicate = new Predicate<String>() {
// @Override
// public boolean test(String o) {
// return o.isEmpty();
// }
// };
Predicate<String> predicate = str->{return str.isEmpty();};
System.out.println(predicate.test(""));
}
}
Consumer
![](https://i-blog.csdnimg.cn/blog_migrate/f66eb2028d52fd531b2218a73a4933f6.png)
/**
* @author wuyimin
* @create 2021-07-08-22:26
* @description 消费型接口 只有输入没有返回
*/
public class demo3 {
public static void main(String[] args) {
// //打印字符串
// Consumer<String> consumer = new Consumer<String>() {
// @Override
// public void accept(String o) {
// System.out.println(o);
// }
// };
Consumer<String> consumer=str->{ System.out.println(str); };
consumer.accept("abc");
}
}
Supplier
![](https://i-blog.csdnimg.cn/blog_migrate/6174a44955777adfc48767b15cf0d011.png)
/**
* @author wuyimin
* @create 2021-07-08-22:31
* @description 供给型接口 没有接受只有返回值
*/
public class demo4 {
public static void main(String[] args) {
// Supplier<Integer> supplier = new Supplier<Integer>() {
// @Override
// public Integer get() {
// return 1024;
// }
// };
Supplier<Integer> supplier=()->{return 1024;};
System.out.println(supplier.get());
}
}