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.