java函数式编程

本文深入探讨了函数式编程的基本概念,重点解析了Funcation接口的使用,包括compose和andThen方法的应用,通过实例展示了如何利用这些方法进行规则映射和数据处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在研究函数式编程,开始很痛苦,完全看不懂,但是不要着急,研究两天之后,大概有一些认知,首先看一下funcation接口。
一。Funcation详解:
重要的方法:

  1. R apply(T t);
    
  2. default <V> Function<V, R> compose(Function<? super V, ? extends T> before) {
     Objects.requireNonNull(before);
     return (V v) -> apply(before.apply(v));
    
    }
  3. default <V> Function<T, V> andThen(Function<? super R, ? extends V> after) {
    Objects.requireNonNull(after);
    return (T t) -> after.apply(apply(t));
    
    }
  4.      static <T> Function<T, T> identity() {
    return t -> t;
    
    }
    看代码解释啥意思:
    主要解释一下2.3方法的意思,14比较简单就不说了,
    public static void main(String[] args) {
        Function<Integer,Integer> A=i->i+1;
        Function<Integer,Integer> B=i->i*i;

        // A.andThen(B).apply(5) 就是把A.apply(5)的值作为作为andThen的参数传递进去
        System.out.println("F111:"+A.andThen(B).apply(5));
        System.out.println("F1:"+B.apply(A.apply(5)));
        // 先执行B的apply函数,把结果作为B的apply的参数传递进去
        System.out.println("F22:"+A.compose(B).apply(5));
        System.out.println("F2:"+A.apply(B.apply(5)));
    }

还是要说明下,,根据我的理解,上面代码中,AB都是一种规则,映射规则。apply()决定,执行这个规则后要做的事情,这里就是返回执行规则的结果,apply()里面的参数就是要传入的数据。多以,A.apply(5)指的就是,执行A规则,传入的参数是5,执行完之后要做的事就是apply,返回结果。我在一开始学习的时候不是很理解为什么要有apply()这个方法名,直接A(),不更好理解吗,后来仔细想想,方法名的作用就是要告知,执行完规则后要做的事情,是把结果返回还是消耗掉。以后在研究吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值