Lombok experimental features
Experimental features are available in your normal lombok installation, but are not as robustly supported as lombok's main features. In particular, experimental features:
- Are not tested as well as the core features.
- Do not get bugs fixed as quickly as core features.
- May have APIs that will change, possibly drastically if we find a different, better way to solve the same problem.
- May disappear entirely if the feature is too difficult to support or doesn't bust enough boilerplate.
Features that receive positive community feedback and which seem to produce clean, flexible code will eventually become accepted as a core feature and move out of the experimental package.
@Accessors
A more fluent API for getters and setters.
@ExtensionMethod
Annoying API? Fix it yourself: Add new methods to existing types!
@FieldDefaults
New default field modifiers for the 21st century.
@Delegate
Don't lose your composition.
onMethod= / onConstructor= / onParam=
Sup dawg, we heard you like annotations, so we put annotations in your annotations so you can annotate while you're annotating.
@UtilityClass
Utility, metility, wetility! Utility classes for the masses.
@Helper
With a little help from my friends... Helper methods for java.
@FieldNameConstants
Name... that... field! String constants for your field's names.
@SuperBuilder
Bob now knows his ancestors: Builders with fields from superclasses, too.
@Tolerate
Skip, jump, and forget! Make lombok disregard an existing method or constructor.
@Jacksonized
Bob, meet Jackson. Lets make sure you become fast friends.
@StandardException
Standard.. Exceptional? This is not just an oxymoron, it's convenient!
Supported configuration keys:
-
lombok.experimental.flagUsage
= [warning
|error
] (default: not set) - Lombok will flag any usage of any of the features listed here as a warning or error if configured.
Putting the "Ex" in "Experimental": promoted or deleted experimental features.
@Value: promoted
@Value
has proven its value and has been moved to the main package.
@Builder: promoted
@Builder
is a solid base to build APIs on, and has been moved to the main package.
@Wither: renamed to @With, and promoted
Immutable 'setters' - methods that create a clone but with one changed field.
var
Modifiable local variables with a type inferred by assigning value.