JUC并发编程函数式接口(十三)

四大函数式接口

lambda表达式  链式编程 函数式接口  Stream流式计算

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

@FunctionalInterface
public interface Runnable {
    public abstract void run();
}

//超级多FunctionalInterface

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

//foreach(消费者的函数式接口)

函数式接口Function

 

package com.xizi.function;

import java.util.function.Function;

public class Test1 {
    public static void main(String[] args) {
//        Function<String,String> function = new Function<String,String>(){
//            @Override
//            public String apply(String s) {
//                return s;
//            }
//        };
//        lambda简化
        Function<String,String> function =( s)->{return s;};

        System.out.println(function .apply("abc"));
    }
}

断定型接口  有一个输入参数 返回值只能是布尔值

package com.xizi.function;

import java.util.function.Predicate;

public class Test2 {
    public static void main(String[] args) {
        //判断字符串是否为空
//        Predicate<String> predicate = new Predicate<String>(){
//            @Override
//            public boolean test(String str) {
//                return str.isEmpty();
//            }
//        };
        Predicate<String> predicate =(str)->{return str.isEmpty();};
        System.out.println(predicate.test(" "));
    }
}

 Consumer消费型接口  只有输入 没有返回值

package com.xizi.function;

import java.util.function.Consumer;

public class Test3 {
    public static void main(String[] args) {
        Consumer<String> consumer = new Consumer<String>(){
            @Override
            public void accept(String string) {
                System.out.println(string);
            }
        };

        Consumer<String> consumer2 = (string)->{System.out.println(string);};

        consumer.accept("ava");
        consumer2.accept("ava");
    }
}

Supplier 供给型接口 没有参数 只有返回值

@FunctionalInterface
public interface Supplier<T> {

    T get();
}
package com.xizi.function;

import java.util.function.Supplier;

public class Test4 {
    public static void main(String[] args) {
//        Supplier supplier = new Supplier<Integer>(){
//            @Override
//            public Integer get() {
//                return 12546;
//            }
//        };
        Supplier supplier =()->{  return 12546;};
        System.out.println(supplier.get());
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_45480785/article/details/105378225