gaojingsong 阅读(45) 评论(0)
Project Lombok is a java library that automatically plugs into your editor 
and build tools, spicing up your java.Never write another getter or equals 
method again, with one annotation your class has a fully featured builder, 
Automate your logging variables, and much more.


Lombok能以简单的注解形式来简化java代码,提高开发人员的开发效率。例如开发中经常需要写的javabean,
都需要花时间去添加相应的getter/setter,也许还要去写构造器、equals等方法,而且需要维护,
当属性多时会出现大量的getter/setter方法,这些显得很冗长也没有太多技术含量,一旦修改属性,
就容易出现忘记修改对应方法的失误。

Lombok能通过注解的方式,在编译时自动为属性生成构造器、getter/setter、equals、hashcode、
toString方法。出现的神奇就是在源码中没有getter和setter方法,但是在编译生成的字节码文件中有
getter和setter方法。这样就省去了手动重建这些代码的麻烦,使代码看起来更简洁些。




The Lombok javadoc is available, but we advise these pages.
val
Finally! Hassle-free final local variables.
var
Mutably! Hassle-free 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-nullfield, 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.
@Builder
... and Bob's your uncle: No-hassle fancy-pants APIs for object creation!
@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?"
experimental
Head to the lab: The new stuff we're working on.