大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

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

Java回調函數的例子

更新時間:2022-08-31 11:24:08 來源:動力節點 瀏覽1504次

我們已經多次聽說過回調函數,主要是在 JavaScript 中。

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

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

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

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

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) { 
    // 這里我們傳遞一個消費者函數
    // 作為參數
    getSalary ((grossSalary) -> { System.out 
        .println ("Gross Salary :" + GrossSalary); deductTax (grossSalary, (afterTaxSalary) -> { System.out             .println ("稅后:" + afterTaxSalary);         });     }); }

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

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

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) { 
    // 這里我們傳遞一個消費者函數
    // 作為參數
    getSalary ((grossSalary) -> { System.out 
        .println ("Gross Salary :" + GrossSalary); deductTax (grossSalary, (afterTaxSalary) -> { System.out             .println ("稅后:" + afterTaxSalary); payRent (afterTaxSalary, ( afterRentPayment ) -> { System.out                 .println ("租金后:" + afterRentPayment);             } );         });     }); }

看,很容易將函數作為參數傳遞并從執行函數中回調它。

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

這是我們回調類的完整源代碼。

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

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

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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 97国产精品 | 日韩中文字幕视频在线观看 | 97国产成人精品视频 | 欧美久久久久久久久 | 涩涩视频在线观看 | 午夜网站在线观看免费网址免费 | 国产在线视频一区 | 99热久久国产精品免费观看 | 久久午夜青青草原影院 | a一级网站| 免费四虎永久在线精品 | 橘梨纱视频一区二区在线观看 | 奇米影视狠狠 | 成年香蕉大黄美女美女 | 亚洲热在线观看 | 欧美手机手机在线视频一区 | 欧美一级毛片在线看视频 | 94久久国产乱子伦精品免费 | 久久精品亚洲欧美va | 欧美亚洲综合另类型色妞 | 91中文字幕在线视频 | 日日夜夜国产 | 久久这里有精品视频任我鲁 | 精品视频一二三区 | 在线播放国产一区 | 精品久久久久国产免费 | 亚州欧美 | 中文字幕在线激情日韩一区 | 欧美成人性色xxxx视频 | 欧洲免费无线码二区5 | 国产欧美在线观看视频 | 国产午夜精品久久久久免费视 | 精品国产日韩久久亚洲 | 久草在线在线精品观看 | 国产精品久久久久久福利69堂 | 亚洲爽爽 | 精品视频免费 | 富二代啪啪精品网站 | 男人的天堂在线视频 | 欧美视频一区 | 九九精品免费 |