黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 Java回調(diào)函數(shù)的例子

Java回調(diào)函數(shù)的例子

更新時間:2022-08-31 11:24:08 來源:動力節(jié)點 瀏覽1557次

我們已經(jīng)多次聽說過回調(diào)函數(shù),主要是在 JavaScript 中。

那么讓我們用 Java 進行一些函數(shù)式編程……

公共類回調(diào){
    public static void getSalary(Consumer<Double> callback) {
        雙倍工資 = 50_000.00; 
        系統(tǒng)。out .println("領(lǐng)取工資..."); 
        // 回調(diào)我們的回調(diào)函數(shù)
        callback.accept(salary); 
    }
    public static void main(String... args) { 
        // 這里我們傳遞一個消費者函數(shù)
        // 作為參數(shù)
        getSalary ((salary) -> { System.out
             .println ("Gross Salary :" + Salary);         } );     } }

因此,我們的getSalary()函數(shù)將接受消費者double 類型且不返回任何內(nèi)容的函數(shù),這里我們使用Consumer<T> 函數(shù)接口,但 Java 中還有其他FunctionInterface。

現(xiàn)在讓我們在流程中添加更多內(nèi)容……所以當我們獲得 Salary 時,首先要做的就是從我們的工資中扣除稅款,所以讓我們實現(xiàn)它。

public static void deductTax(double GrossSalary, Consumer<Double> callback) { 
    System. out .println("扣稅..."); 
    雙重征稅 = 5;// 5% 的總工資
    雙倍 afterTax = GrossSalary * (100 - tax) / 100; 
    callback.accept(稅后); 
}
public static void main(String... args) { 
    // 這里我們傳遞一個消費者函數(shù)
    // 作為參數(shù)
    getSalary ((grossSalary) -> { System.out 
        .println ("Gross Salary :" + GrossSalary); deductTax (grossSalary, (afterTaxSalary) -> { System.out             .println ("稅后:" + afterTaxSalary);         });     }); }

在這里,我們創(chuàng)建了新函數(shù)deductTax()用于從工資總額中扣除稅款,它將接受工資總額和另一個回調(diào)函數(shù)作為參數(shù)。它將從總工資中扣除稅款并將其傳遞回我們的回調(diào)函數(shù)。

讓我們再添加一個函數(shù)來從我們的稅后工資中支付租金。

public static void payRent(double afterTaxSalary, Consumer<Double> callback) { 
    System. out .println("付房租..."); 
    雙倍租金 = 20_000.00; 
    double afterRent = afterTaxSalary - 租金;
    callback.accept(afterRent); 
}
public static void main(String... args) { 
    // 這里我們傳遞一個消費者函數(shù)
    // 作為參數(shù)
    getSalary ((grossSalary) -> { System.out 
        .println ("Gross Salary :" + GrossSalary); deductTax (grossSalary, (afterTaxSalary) -> { System.out             .println ("稅后:" + afterTaxSalary); payRent (afterTaxSalary, ( afterRentPayment ) -> { System.out                 .println ("租金后:" + afterRentPayment);             } );         });     }); }

看,很容易將函數(shù)作為參數(shù)傳遞并從執(zhí)行函數(shù)中回調(diào)它。

為什么要使用回調(diào),回調(diào)很容易進行單元測試,因為我們可以將任何函數(shù)作為回調(diào)傳遞給函數(shù)參數(shù)。如果我們想在完成一些異步任務后執(zhí)行某個進程,那么我們可以傳遞回調(diào)函數(shù),這樣在完成一些異步任務后它會回火我們的回調(diào)函數(shù)。

這是我們回調(diào)類的完整源代碼。

公共類回調(diào){
    public static void getSalary(Consumer<Double> callback) {
        雙倍工資 = 50_000.00; 
        系統(tǒng)。out .println("領(lǐng)取工資..."); 
        // 這里可以做一些工作...比如db call, api call 
        // 回調(diào)我們的回調(diào)函數(shù)
        callback.accept(salary); 
    }
    public static void deductTax(double GrossSalary, Consumer<Double> callback) { 
        System. out .println("扣稅..."); 
        雙重征稅 = 5;// 5% 的總工資
        雙倍 afterTax = GrossSalary * (100 - tax) / 100; 
        // 這里可以做一些工作...比如通知稅務局
        // 回調(diào)我們的回調(diào)函數(shù)
        callback.accept(afterTax); 
    }
    public static void payRent(double afterTaxSalary, Consumer<Double> callback) { 
        System. out .println("付房租..."); 
        雙倍租金 = 20_000.00; 
        double afterRent = afterTaxSalary - 租金;
        // 這里可以做一些工作...比如通知地主
        // 回調(diào)我們的回調(diào)函數(shù)
        callback.accept(afterRent); 
    }
    public static void main(String... args) { 
        // 這里我們傳遞一個消費者函數(shù)
        // 作為參數(shù)
        getSalary ((grossSalary) -> { System.out 
            .println ("Gross Salary :" + GrossSalary); deductTax (grossSalary, (afterTaxSalary) -> { System.out                 .println ("稅后:" + afterTaxSalary); payRent (afterTaxSalary, ( afterRentPayment ) -> { System.out                     .println ("租金后:" + afterRentPayment);                 } );             });         });     } }

以上就是關(guān)于“Java回調(diào)函數(shù)的例子”介紹,大家如果想了解更多相關(guān)知識,不妨來關(guān)注一下動力節(jié)點的Java在線學習,里面的課程內(nèi)容細致全面,很適合零基礎(chǔ)的小白學習,相信對大家一定會有所幫助的。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 不卡视频一区二区 | 欧美在线观看a | 精品视频二区 | 手机毛片在线 | 色戒吃奶动态图 | 亚洲福利天堂网福利在线观看 | 波多野结衣91 | 老司机午夜影院 | 成人免费观看视频久爱网 | 亚洲一级网站 | 不卡福利视频 | 日本在线黄| 7777sq国产精品| 日韩三级影视 | 国产精品伦理久久久久久 | 亚洲日本一区二区三区在线 | 性视频一级| 成人动漫在线看 | 一级黄色一级片 | 国外欧美一区另类中文字幕 | 国产黄色片在线看 | 成人三级在线 | 午夜夜伦鲁鲁片 | 青草青青在线视频 | 日韩精品在线观看视频 | 国产成人免费高清视频网址 | yy6080网午夜毛片一级 | 天天操天天操天天操香蕉 | 国产欧美日韩三级 | 久久在草 | 激情综合久久 | 国产日韩欧美网站 | 国产成人精品免费视频大全麻豆 | 欧美怡红院免费全视频 | 日本免费视屏 | 欧美成狂野欧美在线观看 | 日本mv精品中文字幕 | 在线精品欧美日韩 | 欧美午夜一区二区福利视频 | nu77亚洲综合日韩精品 | 日韩综合一区 |