142-java-functional-programming
Installation
SKILL.md
Java Functional Programming rules
Identify and apply functional programming principles in Java to improve immutability, expressiveness, and maintainability.
What is covered in this Skill?
- Immutable objects and Records (JEP 395)
- Pure functions free of side effects
- Functional interfaces:
Function,Predicate,Consumer,Supplier, custom@FunctionalInterface - Lambda expressions and method references
- Stream API: filter/map/reduce pipelines, parallel streams,
toUnmodifiable*collectors Optionalidiomatic usage:map/flatMap/filter/orElse*overisPresent()+get()- Function composition:
andThen/compose - Higher-order functions: memoization, currying, partial application
- Pattern Matching for
instanceofandswitch(Java 21) - Sealed classes and interfaces (Java 17) for exhaustive domain hierarchies
- Switch Expressions (Java 14), Stream Gatherers (JEP 461)
- Effect-boundary separation: side effects at edges, pure core logic
- Immutable collections:
List.of(),Collectors.toUnmodifiableList()