Identify and apply functional programming principles in Java to improve immutability, expressiveness, and maintainability.
Prerequisites: Run ./mvnw compile or mvn compile before applying any changes. If compilation fails, stop immediately — do not proceed until the project compiles successfully. Also verify that the project's maven-compiler-plugin source/target supports the Java features being used.
Core areas: Immutable objects and Records (JEP 395), pure functions free of side effects, functional interfaces (Function, Predicate, Consumer, Supplier) and custom @FunctionalInterface types, lambda expressions and method references, Stream API (filter/map/reduce pipelines, parallel streams, toUnmodifiable collectors), Optional idiomatic usage (map/flatMap/filter/orElse over isPresent()+get()), function compositi...
Úselo cuando necesite aplicar principios de programación funcional en Java, incluida la escritura de objetos y registros inmutables, funciones puras, interfaces funcionales, expresiones lambda, canalizaciones de API de Stream, opcional para seguridad nula, composición de funciones, funciones de orden superior, coincidencia de patrones, por ejemplo, de y switch, clases/interfaces selladas para jerarquías controladas, Stream Gatherers para operaciones personalizadas, curry/aplicación parcial, separación de límites de efectos y patrones funcionales concurrentes seguros. Parte del proyecto skills-for-java Fuente: jabrena/cursor-rules-java.