函数式编程

1.函数式接口:只要是函数式接口,就可以是lambda

public static void main(String[] args) {
        Function function1 = new Function<String,String>() {
            @Override
            public String apply(String o) {
                return o;
            }
        };
        //和上边是等价的
        Function<String, String> function = str->{
           return str;
        };
    }

2.断定型接口:有一个参数,返回值值能是boolean值

 public static void main(String[] args) {
        Predicate<String> predicate = new Predicate<String>() {
            @Override
            public boolean test(String str) {
                return str.isEmpty();
            }
        };
       //和上边是等价的
        Predicate<String> predicate1 = (str)->{
            return str.isEmpty();
        };
    }

3.消费型接口:只有输入,没有返回

 public static void main(String[] args) {
        Consumer<String> consumer = new Consumer<String>() {
            @Override
            public void accept(String o) {
                System.out.println(o);
            }
        };
        Consumer<String> consumer2 = (str)->{
            System.out.println(str);
        };
    }

4.供给型接口:没有参数,只有返回值

 public static void main(String[] args) {
        Supplier<Integer> supplier = new Supplier<Integer>() {
            @Override
            public Integer get() {
                return 1024;
            }
        };
        Supplier<Integer> supplier1 = ()->{
            return 1024;
        };
    }
原文地址:https://www.cnblogs.com/smallVampire/p/12937908.html