Lombok features
val
- Finally! Hassle-free final local variables.
@NonNull
- or: How I learned to stop worrying and love the NullPointerException.
@Cleanup
- Automatic resource management: Call your
close()
methods safely with no hassle.
@Getter
/ @Setter
- Never write
public int getFoo() {return foo;}
again.
@ToString
- No need to start a debugger to see your fields: Just let lombok generate a
toString
for you!
@EqualsAndHashCode
- Equality made easy: Generates
hashCode
and equals
implementations from the fields of your object.
@NoArgsConstructor
, @RequiredArgsConstructor
and @AllArgsConstructor
- Constructors made to order: Generates constructors that take no arguments, one argument per final / non-null field, or one argument for every field.
@Data
- All together now: A shortcut for
@ToString
, @EqualsAndHashCode
,
@Getter
on all fields, and @Setter
on all non-final fields, and @RequiredArgsConstructor
!
@Value
- Immutable classes made very easy.
@SneakyThrows
- To boldly throw checked exceptions where no one has thrown them before!
@Synchronized
synchronized
done right: Don't expose your locks.
@Getter(lazy=true)
- Laziness is a virtue!
@Log
- Captain's Log, stardate 24435.7: "What was that line again?"
@Delegate
- Don't lose your composition.
- experimental features
- Here be dragons: Extra features which aren't quite ready for prime time yet.
The documentation above is a lot easier to follow, but if you want to build your own transformations,
or you want to add javadoc to
lombok.jar
in your IDE, you can also check out
the javadoc.
Running Lombok
On eclipse
Execute lombok.jar (doubleclick it, or run java -jar lombok.jar). Follow instructions.
On javac (and maven, ant, and other build tools)
Include lombok.jar on the classpath as you compile. That's all there is to it!
Lombok hosts its own maven repository, so adding lombok to maven is very simple.
full instructions are here.
On GWT (Google Widget Toolkit)
See
gwt setup.
On javadoc, and other source-based tools
Use
delombok first, then run javadoc or GWT on the delombok-ed code.
Running delombok
Delombok copies your source files to another directory, replacing all lombok annotations with their desugared form. So, it'll turn
@Getter
back into the actual getter. It then removes the annotation. This is useful for all sorts of reasons; you can check out what's happening under the hood,
if the unthinkable happens and you want to stop using lombok, you can easily remove all traces of it in your source, and you can use delombok to preprocess
your source files for source-level tools such as javadoc and GWT. More information about how to run delombok, including instructions for build tools
can be found at the
delombok page.