java8-四大函数式接口

函数式接口: 有且只有一个方法的接口

@FunctionalInterface
public interface Runnable {

    public abstract void run();
}

简化编成模型 在新版本的框架底层大量应用

java8-四大函数式接口

/*
 * Function 函数型接口 有一个输入参数 有一个输出参数
 * 只要是函数式接口 都可以用lambda表达式简化
 *
 * */
public class Demo01 {
    public static void main(String[] args) {
        Function function = new Function<String, String>() {
            @Override
            public String apply(String str) {
                return str+" ok";
            }
        };
        System.out.println(function.apply("it's"));
        Function<Integer,String> function2 =(str)-> {return str+ 666 +"  ---NB";};
        System.out.println(function2.apply(6000));
    }
}

断定型接口

/*
 * Predicate 断定型接口 有一个输入参数 返回是布尔值
 * 只要是函数式接口 都可以用lambda表达式简化
 *
 * */
public class Demo02 {
    public static void main(String[] args) {
        Predicate<String> predicate = new Predicate<String>() {

            @Override
            public boolean test(String str) {
                return str.isEmpty();
            }
        };
//        System.out.println(predicate.test("it's"));
//        System.out.println(predicate.test(""));
        Predicate<String> predicate2 = (str)->{ return str.isEmpty();};
        System.out.println(predicate2.test("it's"));
        System.out.println(predicate2.test(""));
    }
}

消费型接口

/*
 * Consumer 消费型接口 只有输入值 没有返回值
 * */
public class Demo03 {
    public static void main(String[] args) {
//        Consumer<String> consumer = new Consumer<String>() {
//
//            @Override
//            public void accept(String str) {
//                System.out.println("66666666");
//                System.out.println(str);
//
//            }
//        };
        Consumer<String> consumer = (str) -> {
            System.out.println(str);
        };
        consumer.accept("777777");

    }
}

供给型接口

/*
 * Supplier 供给型接口 没有参数 只有返回值
 * */
public class Demo04 {
    public static void main(String[] args) {
//        Supplier<String> supplier = new Supplier<String>() {
//
//            @Override
//            public String get() {
//                return "6666";
//            }
//        };
        Supplier<String> supplier = () -> {
            return "6666";
        };
        System.out.println(supplier.get());

    }
}
上一篇:Java8---新的日期和时间API


下一篇:java8之后的List与Map遍历(Lambda 表达式)