Java回调函数的例子_极悦注册
专注Java教育14年 全国咨询/投诉热线:444-1124-454
极悦LOGO图
始于2009,口口相传的Java黄埔军校
首页 学习攻略 Java学习 Java回调函数的例子

Java回调函数的例子

更新时间:2022-08-31 11:24:08 来源:极悦 浏览1217次

我们已经多次听说过回调函数,主要是在 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极悦在线学习,里面的课程内容细致全面,很适合零基础的小白学习,相信对大家一定会有所帮助的。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>