最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java8中:: 用法示例(JDK8雙冒號(hào)用法)

 更新時(shí)間:2019年09月03日 15:17:03   作者:A點(diǎn)點(diǎn)圈圈A  
這篇文章主要給大家介紹了關(guān)于java8 中的:: 用法(JDK8雙冒號(hào)用法)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用java8具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

JDK8中有雙冒號(hào)的用法,就是把方法當(dāng)做參數(shù)傳到stream內(nèi)部,使stream的每個(gè)元素都傳入到該方法里面執(zhí)行一下。

代碼其實(shí)很簡(jiǎn)單:

以前的代碼一般是如此的:

public class AcceptMethod {
 
 public static void printValur(String str){
 System.out.println("print value : "+str);
 }
 
 public static void main(String[] args) {
 List al = Arrays.asList("a","b","c","d");
 for (String a: al) {
  AcceptMethod.printValur(a);
 }
 //下面的for each循環(huán)和上面的循環(huán)是等價(jià)的 
 al.forEach(x->{
  AcceptMethod.printValur(x);
 });
 }
}

現(xiàn)在JDK雙冒號(hào)是:

public class MyTest {
 public static void printValur(String str){
 System.out.println("print value : "+str);
 }
 
 public static void main(String[] args) {
 List al = Arrays.asList("a", "b", "c", "d");
 al.forEach(AcceptMethod::printValur);
 //下面的方法和上面等價(jià)的
 Consumer methodParam = AcceptMethod::printValur; //方法參數(shù)
 al.forEach(x -> methodParam.accept(x));//方法執(zhí)行accept
 }
}

上面的所有方法執(zhí)行玩的結(jié)果都是如下:

print value : a
print value : b
print value : c
print value : d

在JDK8中,接口Iterable 8中默認(rèn)實(shí)現(xiàn)了forEach方法,調(diào)用了 JDK8中增加的接口Consumer內(nèi)的accept方法,執(zhí)行傳入的方法參數(shù)。

JDK源碼如下:

/**
 * Performs the given action for each element of the {@code Iterable}
 * until all elements have been processed or the action throws an
 * exception. Unless otherwise specified by the implementing class,
 * actions are performed in the order of iteration (if an iteration order
 * is specified). Exceptions thrown by the action are relayed to the
 * caller.
 *
 * @implSpec
 * <p>The default implementation behaves as if:
 * <pre>{@code
 * for (T t : this)
 *  action.accept(t);
 * }</pre>
 *
 * @param action The action to be performed for each element
 * @throws NullPointerException if the specified action is null
 * @since 1.8
 */
 default void forEach(Consumer<? super T> action) {
 Objects.requireNonNull(action);
 for (T t : this) {
  action.accept(t);
 }
 }

另外補(bǔ)充一下,JDK8改動(dòng)的,在接口里面可以有默認(rèn)實(shí)現(xiàn),就是在接口前加上default,實(shí)現(xiàn)這個(gè)接口的函數(shù)對(duì)于默認(rèn)實(shí)現(xiàn)的方法可以不用再實(shí)現(xiàn)了。類似的還有static方法?,F(xiàn)在這種接口除了上面提到的,還有BiConsumer,BiFunction,BinaryOperation等,在java.util.function包下的接口,大多數(shù)都有,后綴為Supplier的接口沒(méi)有和別的少數(shù)接口。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • java大文件上傳處理方法實(shí)例代碼

    java大文件上傳處理方法實(shí)例代碼

    在Java中實(shí)現(xiàn)大文件上傳功能,確實(shí)需要考慮到文件大小可能超出內(nèi)存限制、網(wǎng)絡(luò)傳輸穩(wěn)定性等因素,這篇文章主要介紹了java大文件上傳處理方法的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-09-09
  • Java實(shí)現(xiàn)視頻格式轉(zhuǎn)換的完整指南

    Java實(shí)現(xiàn)視頻格式轉(zhuǎn)換的完整指南

    在Java中實(shí)現(xiàn)視頻格式的轉(zhuǎn)換,通常需要借助第三方工具或庫(kù),因?yàn)橐曨l的編解碼操作復(fù)雜且性能需求較高,以下是實(shí)現(xiàn)視頻格式轉(zhuǎn)換的常用方法和步驟,需要的朋友可以參考下
    2025-05-05
  • JAVA如何獲取工程下的文件

    JAVA如何獲取工程下的文件

    這篇文章主要介紹了JAVA如何獲取工程下的文件,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • Spring配置數(shù)據(jù)源流程與作用詳解

    Spring配置數(shù)據(jù)源流程與作用詳解

    這篇文章主要介紹了使用SpringBoot配置多數(shù)據(jù)源的經(jīng)驗(yàn)分享,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-08-08
  • Java mysql特殊形式的查詢語(yǔ)句詳解

    Java mysql特殊形式的查詢語(yǔ)句詳解

    這篇文章主要介紹了Java mysql特殊形式的查詢,包括子查詢和聯(lián)合查詢、自身連接查詢問(wèn)題,本文通過(guò)sql語(yǔ)句給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-02-02
  • drools中then部分的寫法(推薦)

    drools中then部分的寫法(推薦)

    本文介紹一下drools中then部分的寫法,以及一些內(nèi)置的方法,比如insert/delete/modify等等。同時(shí)也介紹一下rule的繼承,和在when中實(shí)現(xiàn)if else if?等操作,感興趣的朋友跟隨小編一起看看吧
    2022-05-05
  • Spring?循環(huán)依賴之AOP實(shí)現(xiàn)詳情

    Spring?循環(huán)依賴之AOP實(shí)現(xiàn)詳情

    這篇文章主要介紹了Spring?循環(huán)依賴之AOP實(shí)現(xiàn)詳情,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的盆友可以參考一下
    2022-07-07
  • SpringCloud之網(wǎng)關(guān)、服務(wù)保護(hù)和分布式事務(wù)詳解

    SpringCloud之網(wǎng)關(guān)、服務(wù)保護(hù)和分布式事務(wù)詳解

    網(wǎng)關(guān)負(fù)責(zé)路由、身份驗(yàn)證及用戶ID傳遞,配置管理支持熱更新與動(dòng)態(tài)路由,服務(wù)保護(hù)通過(guò)限流、隔離、熔斷防止雪崩,分布式事務(wù)采用XA模式強(qiáng)一致性或AT模式高性能但控制復(fù)雜
    2025-09-09
  • Java編譯錯(cuò)誤問(wèn)題:需要class,interface或enum

    Java編譯錯(cuò)誤問(wèn)題:需要class,interface或enum

    這篇文章主要介紹了Java編譯錯(cuò)誤問(wèn)題:需要class,interface或enum,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • IDEA JeeSite框架httpSession.invalidate()無(wú)效問(wèn)題解決方案

    IDEA JeeSite框架httpSession.invalidate()無(wú)效問(wèn)題解決方案

    這篇文章主要介紹了IDEA JeeSite框架httpSession.invalidate()無(wú)效問(wèn)題解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09

最新評(píng)論

公主岭市| 洛宁县| 绍兴县| 乌什县| 诸城市| 天长市| 宣城市| 兰溪市| 庐江县| 凤阳县| 连州市| 那曲县| 阳东县| 南充市| 永昌县| 固安县| 阿拉善左旗| 都昌县| 罗源县| 全州县| 长武县| 民勤县| 澄城县| 曲沃县| 黑水县| 连云港市| 格尔木市| 尼木县| 枣庄市| 凯里市| 赞皇县| 嵊州市| 银川市| 平顺县| 溧阳市| 新巴尔虎左旗| 肥西县| 文昌市| 嵊州市| 郑州市| 衡水市|