Values and Builders

With Immutables you can generate state of the art immutable objects and builders.
Type-safe, null-safe and thread-safe, with no boilerplate. Generate builders for immutable objects and even plain static factory methods.

Easy to use

Just add jar to classpath and use. No required runtime dependencies!
Guava is supported, but not required.
Works out-of-the box with build tools, integrates into IDEs. Get started!

2.2

Feature packed

Lazy, derived and optional attributes. Comprehensive support for collections as attributes, including Guava collections. Generic parameters. Copy with structural sharing. Singleton and interned instances... and more!

Clean code

Immutables has much higher standards for code readability than other generators.
Generated APIs are carefully tuned for the best power-to-weight ratio. No ugly named identifiers. Implementation code is clear, efficient, and have corresponding javadocs. Take a look

Flexible

Adapt Immutables to your code conventions and tastes. Customizeget, set, with or whatever prefixes. Describe styles as reusable meta-annotations. Generate as much or as little as you need, expose or hide generated classes.

JSON

Immutables are serialization ready, including JSON and its binary forms. Jackson and Gson libraries are supported. Gson is integrated using generated TypeAdapters which use no reflection. JSON guide. MongoDB repositories also included.