八:Lombok 安装入门 - 消除冗长的 java 代码

Posted NiceCui

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了八:Lombok 安装入门 - 消除冗长的 java 代码相关的知识,希望对你有一定的参考价值。


前言:
    逛开源社区的时候无意发现的,用了一段时间,觉得还可以,特此推荐一下。
    lombok 提供了简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 java 代码。特别是相对于 POJO,光说不做不是我的风格,先来看看吧。

lombok 的官方网址:http://projectlombok.org/  

lombok 其实到这里我就介绍完了,开个玩笑,其实官网上有 lombok 三分四十九秒的视频讲解,里面讲的也很清楚了,而且还有文档可以参考。
在这里我就不扯太多,先来看一下 lombok 的安装,其实这个官网视频上也有讲到啦

lombok 安装
    使用 lombok 是需要安装的,如果不安装,IDE 则无法解析 lombok 注解。先在官网下载最新版本的 JAR 包,现在是 0.11.2 版本,我用的是 0.11.0
    第一次使用的时候我下载的是最新版本的,也就是我现在用的 0.11.0,到现在已经更新了两个版本,更新的好快啊 ... ...

1. 双击下载下来的 JAR 包安装 lombok
    我选择这种方式安装的时候提示没有发现任何 IDE,所以我没安装成功,我是手动安装的。如果你想以这种方式安装,请参考官网的视频。

2.eclipse / myeclipse 手动安装 lombok
    1. 将 lombok.jar 复制到 myeclipse.ini / eclipse.ini 所在的文件夹目录下
    2. 打开 eclipse.ini / myeclipse.ini,在最后面插入以下两行并保存:
        -Xbootclasspath/a:lombok.jar
        -javaagent:lombok.jar
    3.重启 eclipse / myeclipse

lombok 注解:
    lombok 提供的注解不多,可以参考官方视频的讲解和官方文档。
    Lombok 注解在线帮助文档:http://projectlombok.org/features/index.
    下面介绍几个我常用的 lombok 注解:
        
@Data   :注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法
        
@Setter:注解在属性上;为属性提供 setting 方法
        
@Getter:注解在属性上;为属性提供 getting 方法
        
@Log4j :注解在类上;为类提供一个 属性名为log 的 log4j 日志对象
        
@NoArgsConstructor:注解在类上;为类提供一个无参的构造方法
        
@AllArgsConstructor:注解在类上;为类提供一个全参的构造方法

 

@Getter / @Setter

 

  可以作用在类上和属性上,放在类上,会对所有的非静态(non-static)属性生成Getter/Setter方法,放在属性上,会对该属性生成Getter/Setter方法。并可以指定Getter/Setter方法的访问级别。

 

@EqualsAndHashCode

 

  默认情况下,会使用所有非瞬态(non-transient)和非静态(non-static)字段来生成equals和hascode方法,也可以指定具体使用哪些属性。

 

@ToString

 

  生成toString方法,默认情况下,会输出类名、所有属性,属性会按照顺序输出,以逗号分割。

 

@NoArgsConstructor, @RequiredArgsConstructor and @AllArgsConstructor

 

  无参构造器、部分参数构造器、全参构造器,当我们需要重载多个构造器的时候,Lombok就无能为力了。

 

@Data

 

  @ToString, @EqualsAndHashCode, 所有属性的@Getter, 所有non-final属性的@Setter和@RequiredArgsConstructor的组合,通常情况下,我们使用这个注解就足够了。



下面是简单示例
    1.不使用 lombok 的方案

 1技术分享
 2技术分享public class Person {
 3技术分享
 4技术分享    private String id;
 5技术分享    private String name;
 6技术分享    private String identity;
 7技术分享    private Logger log = Logger.getLogger(Person.class);
 8技术分享    
 9技术分享    public Person() {
10技术分享        
11技术分享    }
12技术分享    
13技术分享    public Person(String id, String name, String identity) {
14技术分享        this.id              = id;
15技术分享        this.name       = name;
16技术分享        this.identity  = identity;
17技术分享    }
18技术分享    
19技术分享    public String getId() {
20技术分享        return id;
21技术分享    }
22技术分享    
23技术分享    public String getName() {
24技术分享        return name;
25技术分享    }
26技术分享    
27技术分享    public String getIdentity() {
28技术分享        return identity;
29技术分享    }
30技术分享    
31技术分享    public void setId(String id) {
32技术分享        this.id = id;
33技术分享    }
34技术分享    
35技术分享    public void setName(String name) {
36技术分享        this.name = name;
37技术分享    }
38技术分享    
39技术分享    public void setIdentity(String identity) {
40技术分享        this.identity = identity;
41技术分享    }
42技术分享}
43技术分享


    2.使用 lombok 的方案

 1技术分享
 2技术分享@Data
 3技术分享@Log4j
 4技术分享@NoArgsConstructor
 5技术分享@AllArgsConstructor
 6技术分享public class Person {
 7技术分享
 8技术分享    private String id;
 9技术分享    private String name;
10技术分享  private String identity;
11技术分享    
12技术分享}
13技术分享


上面的两个 java 类,从作用上来看,它们的效果是一样的,相比较之下,很明显,使用 lombok 要简洁许多,特别是在类的属性较多的情况下,
同时也避免了修改字段名字时候忘记修改方法名所犯的低级错误。最后需要注意的是,在使用 lombok 注解的时候记得要导入 lombok.jar 包到工程

以上是关于八:Lombok 安装入门 - 消除冗长的 java 代码的主要内容,如果未能解决你的问题,请参考以下文章

Lombok 安装入门 - 消除冗长的 java 代码

Lombok 安装入门 - 消除冗长的 java 代码

Lombok 安装入门 - 消除冗长的 java 代码(转)

Lombok 下载,安装入门 - 消除冗长的 java 代码

Lombok——一款Java构建工具,“懒人”必备!!(idea版)

使用Lombok总结