8. 四大函数式接口(重要)
函数式接口就是只有一个方法的接口
Function
传入参数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
/** * @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
/** * @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
/** * @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()); } }