# Advanced Usage

While understanding the basics provides a solid foundation, the true potential of result objects is unlocked through their functional capabilities. Mastering these techniques enables concise and readable error handling by leveraging the power of [monadic composition](https://en.wikipedia.org/wiki/Monad_\(functional_programming\)).

{% hint style="success" %}
The most idiomatic approach to handling results involves screening them and applying various mapping and flat-mapping methods to transform and compose behavior.
{% endhint %}

![Results can be filtered and transformed just like Java streams.](https://137539276-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MfavUYGNGvzkCicVu3-%2Fuploads%2Fgit-blob-135d5ac81f8633305c808ab0dca6694a708b5a6a%2Fadvanced-usage.png?alt=media)

This section will guide you through these powerful tools, demonstrating how to manipulate results effectively so you can craft more robust and maintainable Java applications.
