java写一个通用的回调函数
时间: 2024-09-09 16:15:06 浏览: 69
Java 是如何利用接口避免函数回调的方法
在 Java 中,你可以创建一个泛型类型的接口或者抽象类来定义一个通用的回调函数,这样可以接受多种类型的参数,并让开发者自定义具体的业务逻辑。这里是一个简单的例子,我们定义一个 `Callback` 接口:
```java
public interface Callback<T> {
void execute(T result);
}
```
在这个例子中,`T` 是一个类型占位符,代表任何类型的结果。然后,你可以创建不同的实现了这个接口的类,每个类对应不同的处理结果的方式:
```java
// 用于处理字符串的结果
class StringCallback implements Callback<String> {
@Override
public void execute(String result) {
System.out.println("处理字符串:" + result);
}
}
// 用于处理整数的结果
class IntegerCallback implements Callback<Integer> {
@Override
public void execute(Integer result) {
System.out.println("处理整数:" + result);
}
}
```
在实际应用中,当你有一个需要异步操作并希望在完成后执行特定操作的任务,就可以这样使用:
```java
public class Main {
public static void main(String[] args) {
doSomethingAsync(new StringCallback(), "Hello");
doSomethingAsync(new IntegerCallback(), 42);
}
public static <T> void doSomethingAsync(Callback<T> callback, T data) {
// 模拟异步操作,这里只是一个简单示例
try {
Thread.sleep(1000); // 假设操作耗时1秒
} catch (InterruptedException e) {
e.printStackTrace();
}
callback.execute(data);
}
}
```
在这个场景下,`doSomethingAsync` 就是回调函数,它接受一个实现了 `Callback` 的实例作为参数。
阅读全文