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...
Verwenden Sie diese Option, wenn Sie funktionale Programmierprinzipien in Java anwenden müssen – einschließlich des Schreibens unveränderlicher Objekte und Datensätze, reiner Funktionen, funktionaler Schnittstellen, Lambda-Ausdrücke, Stream-API-Pipelines, optional für Nullsicherheit, Funktionskomposition, Funktionen höherer Ordnung, Mustervergleich für Instanzen und Schalter, versiegelte Klassen/Schnittstellen für kontrollierte Hierarchien, Stream Gatherer für benutzerdefinierte Operationen, Currying/Teilanwendung, Trennung von Effektgrenzen und gleichzeitig sichere Funktionsmuster. Teil des Skills-for-Java-Projekts Quelle: jabrena/cursor-rules-java.