Java callback function

2025年5月3日 | 阅读4分钟

在 C 和 C++ 编程语言中,从一个函数调用另一个函数的过程称为回调。函数的内存地址由函数指针表示。

在 C 和 C++ 语言中,我们通过将函数指针传递给另一个函数来实现回调。

Java callback function

CC++ 语言不同,Java 没有回调函数的概念。Java 不使用指针的概念,因此不支持回调函数。但是,我们可以通过传递一个引用函数位置的接口来创建一个回调函数,而不是传递函数的内存地址。

下面是用接口实现 Java 回调函数的语法

Java 回调函数是如何工作的?

Java 中的回调函数工作方式如下:

  1. 创建一个接口 X,其中包含一个名为 A() 的方法。
  2. 创建一个名为 method1() 的方法,并将 A 作为方法参数。
  3. 在 method1() 内部调用 A() 方法。
  4. 为了调用 method1(),我们传递 X 的实例并重写 A()。
  5. 使用箭头表示法代替关键字 new,使代码更清晰。

让我们举一个例子,理解一个可以在 Java 中使用回调函数的场景。

示例

我们实现一个税收计算器,用于计算各州的税收(总税收)。对于一个州,税收可能不止一种,但在我们的例子中,我们假设只有两种税收,即州税和中央税。这两种税收中,中央税对所有州都相同,但州税对不同州可能不同。

在上面的代码中,为了在 calculateTax() 方法中计算税收总和,将 stateTax() 方法的地址或引用传递给了该方法。州代码因州而异,因此我们将 stateTax() 方法在接口中声明为抽象方法。

以下是哈里亚纳邦和北方邦的 stateTax() 方法实现:

CallbackExample1.java

输出

Java callback function

CallbackExample2.java

输出

Java callback function

CallbackExample3.java

输出

Java callback function