用途:在 Java 代码中识别并应用函数式编程原则,提升不可变性、表达力与可维护性。
主要能力:不可变对象与 Record(JEP 395);无副作用的纯函数;函数式接口 Function、Predicate、Consumer、Supplier 及自定义 @FunctionalInterface;Lambda 与方法引用;Stream API 的 filter/map/reduce 管道、并行流、toUnmodifiable* 收集器;Optional 惯用法(map/flatMap/filter/orElse* 替代 isPresent()+get());函数组合 andThen/compose;高阶函数如记忆化、柯里化、部分应用;instanceof 与 switch 的模式匹配(Java 21);密封类与接口(Java 17);Switch 表达式(Java 14)、Stream Gatherers(JEP 461);副作用边界分离;不可变集合 List.of()、Collectors.toUnmodifiableList()。参考文档按核心领域以好/坏代码示例组织。
使用方式:应用改动前先确保项目可编译,运行 ./mvnw compile 或 mvn compile,编译失败立即停止;确认 maven-compiler-plugin 的 source/target 支持所用 Java 特性;阅读 references/142-java-functional-programming.md 评估代码;实施重构并将副作用保留在边界;最后运行 ./mvnw clean verify 或 mvn clean verify 验证。
适用场景:需要以函数式风格重构 Java 代码、引入不可变性与纯函数、使用 Stream/Optional/模式匹配等特性时。
限制:若请求范围不明确,需先提问澄清;若缺少必要输入、文件或工具,需报告缺失并询问是否继续;未提供具体收费、平台与效果信息。