飞道的博客

Function、 Predicate、 Consumer、Supplier四大函数式接口详解

202人阅读  评论(0)
函数式接口:只有一个抽象方法的接口就是函数式接口
只要是函数式接口就可以使用Lambda表达式简化代码
使用函数式接口能简化编程模型

Function

函数型接口Function:有一个输入参数,有一个返回值


举例:

public class FunctionTest {
   
    public static void main(String[] args) {
   
//        Function function = new Function<String,String>() {
   
//            @Override
//            public String apply(String str) {
   
//                System.out.println("apply()");
//                return str;
//            }
//        };
        Function function = (str)->{
    // Lambda表达式
            System.out.println("apply()");
            return str;
        };
        System.out.println(function.apply("hello world"));
    }
}

结果:

apply()
hello world

Predicate

断定型接口Predicate:有一个输入参数,返回一个布尔值


举例:

public class PredicateTest {
   
    public static void main(String[] args) {
   
//        Predicate<String> predicate = new Predicate<String>() {
   
//            @Override
//            public boolean test(String str) {
   
//                return str.isEmpty();
//            }
//        };
        Predicate<String> predicate = (String str)->{
   
            return str.isEmpty();
        };
        System.out.println(predicate.test("hello world"));
    }
}

结果:

false

Consumer

消费型接口Consumer:有一个输入参数,没有返回值


举例:

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

结果:

hello world

Supplier

供给型接口Supplier:没有输入参数,有一个返回值


举例:

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

结果:

get()
1024

转载:https://blog.csdn.net/weixin_43912697/article/details/114364501
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场