The idea of utilizing functional programming is to enable declarative programming along with supporting concurrency & state issues.
Most of the items are already better with Java 8 in terms of declarative programming, with the help of Optional Monad, Streams API.
I could sense a need, especially in exception handling and conditions. We might need a composable api to effectively handle exceptions and multi conditions.
The Declarativex library attempts to solve the issue through some functional and fluent interface way.
If all your functions has the same parameter within chaining, You can use this alternative
Catching Exceptions based on Type and Performing appropriate actions
<dependency> <groupId>io.github.muthuishere</groupId> <artifactId>declarativex</artifactId> </dependency>
import declarativex.Try; import declarativex.Filter;