函数型接口:Interface Function<T,R>

传入参数类型为T,返回值类型为R。R apply(T t)

public class FunctionInter {
    public static void main(String[] args) {
//        Function<String,String> function = new Function<String, String>() {
//            @Override
//            public String apply(String s) {
//                return s;
//            }
//        };
        Function<String,String> function = (str)->{ return str; };
        System.out.println(function.apply("123"));
    }
}

断定型接口:Interface Predicate<T>

传入参数t,返回值类型为boolean类型。boolean test(T t)

public class FunctionInter {
    public static void main(String[] args) {
//      Predicate<String> predicate = new Predicate<String>() {
//            @Override
//            public boolean test(String s) {
//                if (s.equals("abc")){
//                    return true;
//                }else {
//                    return false;
//                }
//            }
//        };
        Predicate<String> predicate = (str)->{
            if (str.equals("abc")){
                return true;
            }else {
                return false;
            }
        };
        System.out.println(predicate.test("abc"));
   }
}

消费型接口:Interface Consumer<T>

只有输入,没有返回值。void accept(T t)  

public class FunctionInter {
    public static void main(String[] args) {
//        Consumer<String> consumer = new Consumer<String>() {
//            @Override
//            public void accept(String s) {
//                System.out.println(s);
//            }
//        };
        Consumer<String> consumer1 = (s)->{ System.out.println(s); };
        consumer1.accept("123");
    }
}

供给型接口:Interface Supplier<T>

没有参数,有返回值。T get()  

public class FunctionInter {
    public static void main(String[] args) {
        Supplier<String> supplier = new Supplier<String>() {
            @Override
            public String get() {
                return "456";
            }
        };
        Supplier<String> supplier1 = ()->{ return "456"; };
        System.out.println(supplier.get());
    }
}