Lambda 表达式在泛型编程中有许多应用,特别是在处理集合、流操作和回调函数时。以下是一些常见的应用场景:
public class TaskRunner<T> {
public void runTask(T task, Runnable callback) {
// 执行任务
System.out.println("Running task: " + task);
// 执行回调
callback.run();
}
}
TaskRunner<String> runner = new TaskRunner<>();
runner.runTask("Example Task", () -> System.out.println("Task completed!"));
// 输出:
// Running task: Example Task
// Task completed!
- 集合操作: 使用泛型集合时,lambda 表达式可以简化代码。
- 自定义排序: 使用泛型集合时,可以通过 lambda 表达式定义自定义排序逻辑。
例如
List<Integer> numbers = Arrays.asList(5, 3, 8, 1);
numbers.sort((a, b) -> a - b);
System.out.println(numbers); // 输出: [1, 3, 5, 8]
3. 回调函数: 在泛型编程中,lambda 表达式可以作为回调函数传递。
例如,使用 Runnable 接口:
public class TaskRunner<T> {
public void runTask(T task, Runnable callback) {
// 执行任务
System.out.println("Running task: " + task);
// 执行回调
callback.run();
}
}
TaskRunner<String> runner = new TaskRunner<>();
runner.runTask("Example Task", () -> System.out.println("Task completed!"));
// 输出:
// Running task: Example Task
// Task completed!
4. 泛型方法: 在泛型方法中使用 lambda 表达式。例如,定义一个泛型方法来处理不同类型的集合:
public class Processor {
public static <T> void process(List<T> items, Consumer<T> action) {
for (T item : items) {
action.accept(item);
}
}
}
List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
Processor.process(names, name -> System.out.println("Hello, " + name));
// 输出:
// Hello, Alice
// Hello, Bob
// Hello, Charlie