为了账号安全,请及时绑定邮箱和手机立即绑定

【金秋打卡】第23天-Java函数式编程-特点

标签:
Java

课程内容

  • 纯函数
    • 函数的执行没有副作用
    • 返回值仅依赖于输入参数
  • 高阶函数
    • 函数的参数可以是一个或多个函数
    • 函数的返回值也可以是一个函数
  • Lambda表达式
    • 箭头左边是参数列表,右边是函数体
    • 方法引用class::method
  • Java函数式接口
    • 有且仅有一个未实现的非静态方法的接口叫做“函数式接口”
  • 内建的函数式接口
    • Function <Long, Long> = v -> v + 3;
    • Predicate<Object> predicate = v -> v == null;
    • UnaryOperator<User> uo = user -> {user.setName("a"); return user;}
    • BinaryOperator<Long> bo = (a, b) -> a + b;
    • Supplier<Integer> supplier = () -> (int)Math.random(1000D);
    • Consumer<Integer> consumer = v -> log.debug({}, v);
  • 函数的组合
    • and / or
      • Predicate<String> startsWithA = t -> t.startWith("A");
      • Predicate<String> endsWithX = t -> t.endWith("x");
      • Predicate<String> swAandEndx = startWithA.and(endsWithX)
    • compose / andthen
      • Function<Integer, Integer> squareOp = v -> value * value;
      • Function<Integer, Integer> = doubleOp = v -> 2 * value;
      • Function<Integer, Integer> doubleThenSquare = squareOp.compose(doubleOp);

课程收获

这些内容应该都会,但老师一讲发现又都忘记啦,太不应该
函数式编程特点

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
9
获赞与收藏
1

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消