1. 程式人生 > 其它 >java8-四大函式式介面

java8-四大函式式介面

函式式介面: 有且只有一個方法的介面

@FunctionalInterface
public interface Runnable {

    public abstract void run();
}

簡化編成模型 在新版本的框架底層大量應用

/*
 * 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());

    }
}