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...
Da utilizzare quando è necessario applicare i principi di programmazione funzionale in Java, tra cui la scrittura di oggetti e record immutabili, funzioni pure, interfacce funzionali, espressioni lambda, pipeline API di flusso, facoltativo per sicurezza nulla, composizione di funzioni, funzioni di ordine superiore, corrispondenza di modelli per istanza di e interruttore, classi/interfacce sigillate per gerarchie controllate, raccoglitori di flussi per operazioni personalizzate, currying/applicazione parziale, separazione dei confini degli effetti e modelli funzionali sicuri per la concorrenza. Parte del progetto skills-for-java Fonte: jabrena/cursor-rules-java.