欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java 8新特性 內(nèi)建函數(shù)式接口詳解

 更新時間:2016年12月03日 14:21:41   作者:MPPC  
這篇文章主要介紹了Java 8新特性 內(nèi)建函數(shù)式接口詳解的相關(guān)資料,這里主要介紹4個基本函數(shù)式接口,需要的朋友可以參考下

Java 8新特性內(nèi)建函數(shù)式接口

  在之前的一片博文 Lambda 表達式,提到過Java 8提供的函數(shù)式接口。在此文中,將介紹一下Java 8四個最基本的函數(shù)式接口

  對于方法的引用,嚴格來講都需要定義一個接口。不管我們?nèi)绾尾僮鲗嶋H上有可能操作的接口只有四種。

  Java 8 提供了函數(shù)式接口包java.util.function.*,在該包下有許多Java 8內(nèi)建的函數(shù)式接口。不過基本上分為四種基本的:

功能型接口 (Function)

將 T 作為輸入,返回 R 作為輸出,他還包含了和其他函數(shù)組合的默認方法。

@FunctionalInterface
public interface Function<T, R> {

  R apply(T t);

}
 

示例代碼

   
public static void main(String[] args) {
    
    // 這里用到了Java8的 方法引用,功能型函數(shù)式接口!
    Function<String,Boolean> function = "Hello Java" :: endsWith;
    System.out.println(function.apply("Java"));
}
 

 消費型接口 (Consumer)  

 將 T 作為輸入,不返回任何內(nèi)容,表示在單個參數(shù)上的操作。

@FunctionalInterface
public interface Consumer<T> {

  void accept(T t);

}
 

示例代碼


class TestDemo{
  //此方法沒有返回值,但是有輸入?yún)?shù)
  public void fun(String str){
    System.out.println(str);
  }
}


public class TestFunctional {
  public static void main(String[] args) {
    TestDemo demo = new TestDemo();
    //消費型接口,只有輸入?yún)?shù),沒有輸出參數(shù)
    Consumer<String> consumer = demo :: fun;
    consumer.accept("");

  }
}


供應型接口 (Supplier)

 沒有輸入?yún)?shù),只有T返回輸出

@FunctionalInterface
public interface Supplier<T> {

  T get();

}

 示例代碼



public class TestFunctional {
  public static void main(String[] args) {

    //供應商類型接口,只有輸出參數(shù),沒有輸入?yún)?shù)!
    Supplier<String> supplier = "java 8" :: toUpperCase;
    System.out.println(supplier.get());
  }
}

斷言型接口 (Predicate)

將 T 作為輸入,返回一個布爾值作為輸出,該接口包含多種默認方法來將 Predicate 組合成其他復雜的邏輯(與、或、非)。

@FunctionalInterface
public interface Predicate<T> {

  boolean test(T t);

}
 

示例代碼

  public class TestFunctional {
  public static void main(String[] args) {
    
    //斷言類型接口。有輸入?yún)?shù),輸出參數(shù)為布爾值
    Predicate<String> predicate = "Android" :: equalsIgnoreCase;
    System.out.println(predicate.test("android"));
    
  }
}
   

  所以在Java 8中由于存在有以上的四個功能型接口,所以一般很少會由用戶去定義新的函數(shù)式接口!

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • java實現(xiàn)基于Tcp的socket聊天程序

    java實現(xiàn)基于Tcp的socket聊天程序

    這篇文章主要為大家詳細介紹了java實現(xiàn)基于Tcp的socket聊天程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • jsch中ChannelShell與ChannelExec的區(qū)別及說明

    jsch中ChannelShell與ChannelExec的區(qū)別及說明

    這篇文章主要介紹了jsch中ChannelShell與ChannelExec的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Java代碼注釋規(guī)范(動力節(jié)點整理)

    Java代碼注釋規(guī)范(動力節(jié)點整理)

    代碼注釋是架起程序設(shè)計者與程序閱讀者之間的通信橋梁,最大限度的提高團隊開發(fā)合作效率。也是程序代碼可維護性的重要環(huán)節(jié)之一。下面通過本文說一下我們在日常開發(fā)中使用的代碼注釋規(guī)范
    2017-03-03
  • java分布式基于RestTemplate的使用方法

    java分布式基于RestTemplate的使用方法

    這篇文章主要為大家介紹了java分布式基于RestTemplate的使用方法說明,有需要的朋友可以借鑒參考下希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-02-02
  • 詳解mybatis通過mapper接口加載映射文件

    詳解mybatis通過mapper接口加載映射文件

    本篇文章主要介紹了mybatis通過mapper接口加載映射文件 ,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • Java網(wǎng)絡編程之基于TCP協(xié)議

    Java網(wǎng)絡編程之基于TCP協(xié)議

    本文主要將Java基于TCP的網(wǎng)絡編程主要分解成5個功能:功能分解1:單向通信功能分解,2:雙向通信功能分解,3:對象流傳送功能分解,4:加入完整的處理異常方式功能分解,5:多線程接收用戶請求,需要的朋友可以參考下
    2021-05-05
  • 詳解 Corba開發(fā)之Java實現(xiàn)Service與Client

    詳解 Corba開發(fā)之Java實現(xiàn)Service與Client

    這篇文章主要介紹了詳解 Corba開發(fā)之Java實現(xiàn)Service與Client的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下
    2017-10-10
  • java高并發(fā)鎖的3種實現(xiàn)示例代碼

    java高并發(fā)鎖的3種實現(xiàn)示例代碼

    本篇文章主要介紹了java高并發(fā)鎖的3種實現(xiàn)示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • 詳解SpringCloud LoadBalancer 新一代負載均衡器

    詳解SpringCloud LoadBalancer 新一代負載均衡器

    這篇文章主要為大家介紹了SpringCloud LoadBalancer新一代負載均衡器詳解使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • JVM中的GC初識

    JVM中的GC初識

    GC(Garbage Collection)稱之為垃圾回收,是對內(nèi)存中的垃圾對象,采用一定的算法進行內(nèi)存回收的一個動作,這篇文章主要介紹了JVM中的GC初識,需要的朋友可以參考下
    2022-05-05

最新評論