最新国产好看的视频,伊人天堂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)了。類(lèi)似的還有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特殊形式的查詢(xún)語(yǔ)句詳解

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

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

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

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

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

    這篇文章主要介紹了Spring?循環(huán)依賴(lài)之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)論

阿尔山市| 金平| 安丘市| 陇川县| 定西市| 荥阳市| 太保市| 郑州市| 承德县| 潞西市| 池州市| 怀柔区| 肃宁县| 法库县| 哈尔滨市| 鄱阳县| 资中县| 东乡族自治县| 云安县| 桓台县| 河北区| 沧源| 左权县| 鲜城| 武定县| 东城区| 旬阳县| 蛟河市| 玛曲县| 宁晋县| 博罗县| 琼结县| 通道| 河津市| 宜章县| 稷山县| 彭泽县| 资溪县| 昌邑市| 集贤县| 定兴县|