java.util.funcion包的相關(guān)類

  • 穿插說(shuō)一下,java8中關(guān)于接口修改了某些要求,比如接口可以實(shí)現(xiàn)某些方法的代碼,但是同時(shí)要求聲明方法為default

  • Consumer接口

    • Consumer用來(lái)做什么?
      Consumer接收單個(gè)參數(shù),并且沒(méi)有返回值,主要是通過(guò)函數(shù)來(lái)執(zhí)行一些帶有副作用(設(shè)置屬性)的操作.

    • 方法:
      // 接收某個(gè)對(duì)象之后執(zhí)行操作
      void accept(T t);
      // 先執(zhí)行當(dāng)前的accept,再執(zhí)行after的accept
      default Consumer<T> andThen(Consumer<? super T> after)

  • Predicate接口

    • Predicate用來(lái)做什么?
      判斷輸入的對(duì)象是否滿足某個(gè)條件
    • 方法:
      // 判斷輸入對(duì)象是否滿足設(shè)定的判斷條件
      boolean test(T t);
      // 返回兩個(gè)判斷條件相與后的判斷條件
      default Predicate<T> and(Predicate<? super T> other)
      // 返回判斷條件的否定式
      default Predicate<T> negate()
      // 返回兩個(gè)判斷條件相或后的判斷條件
      default Predicate<T> or(Predicate<? super T> other)
      static <T> Predicate<T> isEqual(Object targetRef)
  • Function接口

    • Function用來(lái)做什么?
      Funcion接口通過(guò)構(gòu)造一個(gè)輸入函數(shù),輸出函數(shù)的對(duì)象,來(lái)實(shí)現(xiàn)一個(gè)在內(nèi)部計(jì)算函數(shù)的過(guò)程的接口.
    • 方法:
      // 給定輸入?yún)?shù),通過(guò)Function對(duì)象計(jì)算輸出值
      R apply(T t)
      // 先執(zhí)行當(dāng)前funtion對(duì)象的apply方法,再執(zhí)行after對(duì)象的apply方法
      default <V> Function<Integer, V> andThen(Function<? super Integer, ? extends V> after)
      // 先執(zhí)行before對(duì)象的apply方法,再執(zhí)行當(dāng)前對(duì)象的apply方法
      public <V> Function<V, Integer> compose(Function<? super V, ? extends Integer> before)
      // 返回一個(gè)只會(huì)返回輸入?yún)?shù)的function對(duì)象
      static <T> Function<T, T> identity()
  • 為什么會(huì)出現(xiàn)function包?
    function包是java的函數(shù)式編程相關(guān)接口,主要提供了不修改內(nèi)部狀態(tài),只用來(lái)計(jì)算或執(zhí)行一些操作的方法,所以function包能較好地解決多線程之間的鎖及并發(fā)存在的一些問(wèn)題.
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 上一篇博客中Java8函數(shù)式編程之三:函數(shù)式接口 - 簡(jiǎn)書留下的問(wèn)題是關(guān)于Consumer接口的,本篇博客就來(lái)介紹...
    linkinparkzlz閱讀 1,489評(píng)論 0 0
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,695評(píng)論 19 139
  • 原文http://www.codeceo.com/article/learn-java-lambda.html L...
    與我常在1053閱讀 1,255評(píng)論 1 7
  • Java8 in action 沒(méi)有共享的可變數(shù)據(jù),將方法和函數(shù)即代碼傳遞給其他方法的能力就是我們平常所說(shuō)的函數(shù)式...
    鐵牛很鐵閱讀 1,383評(píng)論 1 2
  • 對(duì)象的創(chuàng)建與銷毀 Item 1: 使用static工廠方法,而不是構(gòu)造函數(shù)創(chuàng)建對(duì)象:僅僅是創(chuàng)建對(duì)象的方法,并非Fa...
    孫小磊閱讀 2,186評(píng)論 0 3

友情鏈接更多精彩內(nèi)容