java jdk1.8新特性之四种函数式接口

java.util.function 包即是函数式编程的核心

java中四大函数式接口

image.png
函数型接口 Function

一个参数,一个返回值;
Function<String,Integer>的参数为String类型,返回值为Integer类型

import java.util.function.Function;

public class Test {
    public static void main(String[] args) {

        Function<String,Integer> function = new Function<String, Integer>() {
            @Override
            public Integer apply(String s) {
                return s.length();
            }
        };

        Integer size = function.apply("yinkai");
        System.out.println(size);

    }
}
断定型接口 Predicate

一个参数,一个布尔类型的返回值

new Predicate<String>()中,参数是String类型

import java.util.function.Predicate;

public class Test {
    public static void main(String[] args) {

        Predicate<String> predicate = new Predicate<String>() {
            @Override
            public boolean test(String o) {
                return o.isEmpty();
            }
        };

        boolean test = predicate.test("");
        System.out.println(test);


    }
}
消费型接口 Consumer

一个参数,没有返回值;
new Consumer<String>() 中参数的类型就是String;

import java.util.function.Consumer;

public class Test {
    public static void main(String[] args) {

     Consumer<String> cusumer = new Consumer<String>() {
         @Override
         public void accept(String s) {
             System.out.println("输出s==>".concat(s));
         }
     };
     
     cusumer.accept("yinkai");

    }
}

#######供给型接口 Supplier
没有 参数,有返回值;
new Supplier<String>()中的String就是返回值类型;

import java.util.function.Supplier;

public class Test {
    public static void main(String[] args) {

        Supplier<String> supplier = new Supplier<String>() {
            @Override
            public String get() {
                return "hello world";
            }
        };

        String s = supplier.get();
        System.out.println(s);

    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容