文档章节

lombok cookbook 消除冗长的 java 代码

M
 MackCC_Sun
发布于 2016/04/08 21:27
字数 806
阅读 15
收藏 0


lombok 提供了简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 java 代码。特别是相对于 POJO,
官网上有 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:注解在类上;为类提供一个全参的构造方法

下面是简单示例

使用 lombok 的方案

import lombok.Data;

@Data
public class TestLombok {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.out.println("test");
    }

    private Integer id2;
    
    private String name2;
}

生成的class


import java.io.PrintStream;

public class TestLombok
{
  private Integer id2;
  private String name2;
 
  public String toString()
  {
    return "TestLombok(id2=" + getId2() + ", name2=" + getName2() + ")";
  }
 
  public int hashCode()
  {
    int PRIME = 59;int result = 1;Object $id2 = getId2();result = result * 59 + ($id2 == null ? 0 : $id2.hashCode());Object $name2 = getName2();result = result * 59 + ($name2 == null ? 0 : $name2.hashCode());return result;
  }
 
  public boolean canEqual(Object other)
  {
    return other instanceof TestLombok;
  }
 
  public boolean equals(Object o)
  {
    if (o == this) {
      return true;
    }
    if (!(o instanceof TestLombok)) {
      return false;
    }
    TestLombok other = (TestLombok)o;
    if (!other.canEqual(this)) {
      return false;
    }
    Object this$id2 = getId2();Object other$id2 = other.getId2();
    if (this$id2 == null ? other$id2 != null : !this$id2.equals(other$id2)) {
      return false;
    }
    Object this$name2 = getName2();Object other$name2 = other.getName2();return this$name2 == null ? other$name2 == null : this$name2.equals(other$name2);
  }
 
  public void setName2(String name2)
  {
    this.name2 = name2;
  }
 
  public void setId2(Integer id2)
  {
    this.id2 = id2;
  }
 
  public String getName2()
  {
    return this.name2;
  }
 
  public Integer getId2()
  {
    return this.id2;
  }
 
  public static void main(String[] args)
  {
    System.out.println("test");
  }
}

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





© 著作权归作者所有

共有 人打赏支持
M
粉丝 3
博文 158
码字总数 29095
作品 0
朝阳
技术主管
私信 提问
Lombok 1.16.18 发布,消除冗长的 Java 代码

Lombok 1.16.18 已发布,更新如下: v1.16.18 (July 3rd, 2017) 平台:自 v1.16.6 以来,大大改进对 JDK 9 的支持; Issue #985 Bug 修复:Lombok 现可与 Bazel 和 Error Prone 运行 Issue #1...

淡漠悠然
2017/07/05
1K
10
lombok 不用再写pojo的getset

java实体类不写get/set方法 1、下载地址https://projectlombok.org/download Myeclipse、eclipse安装lombok Lombok是一种Java实用工具,可以帮助开发人员消除Java的冗长,具体看lombok的官网...

木之下
08/14
0
0
以简单的方式消除 Java 的冗长

Lombok 是一种 Java Archive (JAR) 文件,可用来消除 Java 代码的冗长。 我们看这样一个例子,一个标准的 Java bean。一个典型的 Java bean 一般具有几个属性。每个属性具有一个 accessor 和...

红薯
2010/04/13
1K
6
Lombok 1.18.0 发布,消除冗长的 Java 代码

Lombok 1.18.0 已发布,更新如下: BREAKING CHANGE: 在 1.16.22 引入的可配置 key 现在默认为 。Issue #1708 BUGFIX: Do not generate a private no-args constructor if that breaks the ......

淡漠悠然
06/07
2.4K
36
以简单的方式消除 Java 的冗长(Lombok)

复制的红薯的,自己只是做一个归档,方便自己看。 ------------------------------------------------------------------------------------ Lombok 是一种 Java Archive (JAR) 文件,可用来...

qqli
2012/12/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

为什么只有你每次提交代码,log里面会出现merge

http://www.cnblogs.com/Sinte-Beuve/p/9195018.html git的merge和rebase https://blog.csdn.net/liuxiaoheng1992/article/details/79108233...

踏破铁鞋无觅处
11分钟前
0
0
如何学习大数据:spark发布程序

一、对于spark程序只是用于默认的spark包的情况 直接点击pcakage 将程序进行在linux当中进行发布 客户端模式:测试 spark-submit --class com.keduox.App \ --master yarn \ --deploy-mode ...

架构师springboot
11分钟前
0
0
oracle job(定时任务)

创建 定时任务 job declare job number;BEGIN DBMS_JOB.SUBMIT( JOB => job, -- job任务的唯一标识(自动生成) WHAT => 'INSERT into TEXTL (id) VALUES(TEXT......

骑羊放狼灬
15分钟前
0
0
Spring声明式事务在抛出异常时不回滚(RollBack)

Spring声明式事务默认只在RuntimeException时Rollback(回滚),不当的try catch会导致事务不回滚。 spring事务默认运行时异常回滚,RuntimeException 配置时添加异常回滚 rollback-for="Th...

叶落花开
15分钟前
0
0
赋能时空云计算 阿里云数据库时空引擎Ganos上线

随着移动互联网、位置感知技术、对地观测技术的快速发展,时空信息已从传统GIS行业渗透到大众应用及各行各业。从静态POI(兴趣点)到APP位置信息,从导航电子地图到车辆行驶轨迹,从卫星影像...

阿里云云栖社区
17分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部