Fork me on GitHub

Project Lombok

Feature Overview Discuss / Help Contribute Report an issue
Download!
Version: @VERSION@ | changelog
Imagine you have a very simple class:
public class Mountain { private final String name; private final double latitude, longitude; private String country; }

While that is fairly clear, that class is not complete. In fact, it won't compile like that.
You'll need to add a constructor to initialize those final fields, you probably want getters, a setter for country, and to be complete, a nice toString as well as an implementation for equals and hashCode. Eclipse can generate all these methods for you, but then you end up with over 70 lines of boilerplate. It's going to be hard to see any surprises buried amongst all those lines of code! Lombok has the answer to this problem.

So instead of this mess: lombok simply offers you an annotation that tells eclipse to generate all this stuff for us silently, without cluttering up your source file, like so:

Note how we haven't even saved the file yet, but in the outline view you can already see all the various methods generated by the @Data annotation. That's because lombok is completely integrated into eclipse. The moment you type the last character of your annotation, all the methods exist, just as if you write the last character on a method declaration. In other words, lombok is not just an annotation processor!

But what about your build process? Lombok works just as well in javac. All you need to do is add lombok.jar to the class path as you compile. Like so:

@Data is nice, but its certainly not the only boilerplate buster that lombok has to offer. If you need more fine grained control, there's @Getter and @Setter, and to help you in correctly cleaning up your resources, @Cleanup can automatically and without cluttering your source files generate try/finally blocks to safely call close() on your resource objects. That's not all, but for the complete list you'll need to head over to the feature overview.

Ready to install lombok? Start by clicking the download button at the top of this page. Going from clicking that button to having your eclipse ready to go takes less than 12 seconds - it's that simple.

Thanks for checking out Project Lombok, and let us know what you think!

If you'd like to read more, check out Reducing boilerplate code with Project Lombok written by Michael Kimberlin.

I changed my mind - I do want to see the video!