继续搬家, 原文我在JavaEye写的, 原文地址: http://witcheryne.iteye.com/blog/1156710
关于Lombok这个东西,论坛里已经有人介绍过,我也是通过别人帖子了解到这个小工具:
http://www.iteye.com/topic/798305
不过作者以免写Getter/Setter为题来介绍Lombok的优势,看了后面的评论之后,觉得这个工具意义不大.
后来在博客在线看到一篇文章,期中提到了Lombok工具.这个工具已经被国外创业者所使用,随之对其产生了很浓厚的兴趣.
<Java开源建站工具>http://www.jobbole.com/entry.php/1233
关于如何介绍Lombok这个工具,自己想了半天,觉得实在比不过作者在首页提供的视频介绍:
ok~ 写了这么多Lombok到底是什么东西,他具体能带来什么便利呢?
Lombok主要是提供一套注解,根据注解在编译时生成相关代码,目前提供如下注解:
@Getter / @Setter
public int getFoo() {return foo;}.
@Getter(lazy=true)
@ToString
Lombok会根据field自动生成
toString
方法,这个对调试来说很方便! 这个注解生成的toString格式:
- LombokUser(id=001, name=wity_lv, email=wity_lv@sample.com)
@EqualsAndHashCode
hashCode and
equals 方法.
@NoArgsConstructor, @RequiredArgsConstructor and @AllArgsConstructor
@Data
@ToString,
@EqualsAndHashCode,
@Getter on all fields, and
@Setter on all non-final fields, and
@RequiredArgsConstructor!
@Cleanup
close() methods safely with no hassle.
@Synchronized
synchronized done right: Don't expose your locks.
@SneakyThrows
@Log
val
@Delegate
如何使用?
1. 从项目首页下载lombok.jar
2. 双击lombok.jar, 将其安装到eclipse中(该项目需要jdk1.6+的环境)

3. 将Lombok.jar添加到classpath中
4. 编码看看:
项目结构:

- package lv.sample.lombok;
- import lombok.AllArgsConstructor;
- import lombok.Data;
- import lombok.NoArgsConstructor;
- import lombok.extern.log4j.Log4j;
- @Data
- @NoArgsConstructor
- @AllArgsConstructor
- @Log4j
- public class LombokUser {
- private String id = null;
- private String name = null;
- private String email = null;
- public static void main(String[] args) {
- log.info("test the lombok bean");
- LombokUser u = new LombokUser("001", "wity_lv", "wity_lv@sample.com");
- System.out.println(u.toString());
- LombokUser u2 = new LombokUser("001", "wity_lv", "wity_lv@sample.com");
- System.out.println(u.equals(u2));
- }
- }
console out 写道
2011-08-24 11:57:36 LombokUser(id=001, name=wity_lv, email=wity_lv@sample.com)
2011-08-24 11:57:36 true
What is happenning???
使用javap看看编译后的代码:

在eclipse outline中显示的结构

到这里 ~ 这些仅仅只是作者提供一些方便的注释, 当然我们可以fork这个项目的 GitHub, 研究内部原理,构建适合自己团队的Lombok:
https://github.com/rzwitserloot/lombok

Lombok是一个Java库,通过注解自动生成getter、setter等方法,简化编码工作。本文介绍了Lombok的主要注解及其使用方法,并提供了示例。
175

被折叠的 条评论
为什么被折叠?



