Lambda 表達式在泛型編程中有許多應用,特別是在處理集合、流操作和回調(diào)函數(shù)時。以下是一些常見的應用場景:
public class TaskRunner<T> {
public void runTask(T task, Runnable callback) {
// 執(zhí)行任務
System.out.println("Running task: " + task);
// 執(zhí)行回調(diào)
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. 回調(diào)函數(shù): 在泛型編程中,lambda 表達式可以作為回調(diào)函數(shù)傳遞。
例如,使用 Runnable 接口:
public class TaskRunner<T> {
public void runTask(T task, Runnable callback) {
// 執(zhí)行任務
System.out.println("Running task: " + task);
// 執(zhí)行回調(diào)
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