14、四大函数式接口(必须掌握)

本文介绍了Java中的函数式编程概念,重点讲解了lambda表达式和四大原生函数式接口——Function、Predicate、Consumer及Supplier的使用。通过实例展示了如何在代码中应用这些接口,简化编程模型,提升效率。
摘要由CSDN通过智能技术生成

新时代的程序员必会:lambda表达式、链式编程、函数式接口、Stream流式计算

函数式接口:只有一个方法的接口。例如:Runnable接口

@FunctionalInterface
public interface Runnable {
    public abstract void run();
}
/**
在Java中有大量的FunctionalInterface
使用函数式接口,能够简化编程模型,在新版本的框架中有大量的使用	
*/
四大原生函数式接口:

在这里插入图片描述

Function函数式接口:

代码测试:

public class Demo01 {
    public static void main(String[] args) {
        Function function = new Function<String,String>(){

            @Override
            public String apply(String o) {
                return o;
            }
        };
        System.out.println(function.apply("abc"));
    }
}

显然,这里的Function接口和Runnable一样,里面只有一个apply方法,我们可以看一下这个Function接口的底层源码:


@FunctionalInterface
public interface Function<T, R> {
	//需要我们实现的方法
    R apply(T t);
}

可以看到,在这个接口中,只有apply方法需要我们去实现,在创建这个接口的实现类后,需要传递两个泛型,一个是作为apply方法的参数,另一个是作为apply方法的返回值。

由于这个接口只有一个方法需要我们去实现,因此,我们可以使用lambda表达式:

public class FunctionDemo {
    public static void main(String[] args) {
        Function<String,String> function = (str)->{
            return str;
        };
        System.out.println(function.apply("abc"));
    }
}

Function:函数型接口,接收两个参数,第一个为参数类型,返回类型。

Predicate断定型接口:

在这里插入图片描述

public class PredicateDemo {
    public static void main(String[] args) {
        Predicate<String> predicate = (str)->{
            return str.isEmpty();
        };
        System.out.println(predicate.test("ad"));
    }
}

Predicate:只有一个参数,返回类型为bool值

Consumer消费型接口:

在这里插入图片描述

public class SupplierDemo {
    public static void main(String[] args) {
        Consumer<String> consumer = (str)->{
            System.out.println(str);
        };
        consumer.accept("abc");
    }
}

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

Supplier供给型接口

在这里插入图片描述

public class SupplierDemo {
    public static void main(String[] args) {
        Supplier<String> supplier = ()->{
            return "abc";
        };
        System.out.println(supplier.get());
    }
}

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值