用途:在 Java 代码中识别并应用函数式编程原则,提升不可变性、表达力与可维护性,适用于重构代码、安全使用 Stream 与 Optional、改善不可变性与纯函数等场景。
主要能力:不可变对象与 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 版本与编译器配置;具体示例与约束以参考文档为准。