`
rensanning
  • 浏览: 3513808 次
  • 性别: Icon_minigender_1
  • 来自: 大连
博客专栏
Efef1dba-f7dd-3931-8a61-8e1c76c3e39f
使用Titanium Mo...
浏览量:37477
Bbab2146-6e1d-3c50-acd6-c8bae29e307d
Cordova 3.x入门...
浏览量:604288
C08766e7-8a33-3f9b-9155-654af05c3484
常用Java开源Libra...
浏览量:678021
77063fb3-0ee7-3bfa-9c72-2a0234ebf83e
搭建 CentOS 6 服...
浏览量:87242
E40e5e76-1f3b-398e-b6a6-dc9cfbb38156
Spring Boot 入...
浏览量:399799
Abe39461-b089-344f-99fa-cdfbddea0e18
基于Spring Secu...
浏览量:69060
66a41a70-fdf0-3dc9-aa31-19b7e8b24672
MQTT入门
浏览量:90463
社区版块
存档分类
最新评论

Java简化臃肿代码之Lombok

    博客分类:
  • Java
 
阅读更多
对于Java语言的一些模板代码(Boilerplate Code),比如我们最常见的访问类的成员变量的getter/setter。如果没有特殊需求,这些方法一般都按照统一的定义规则来书写,而且内容基本不会有什么变化。

当然现在流行的Java的IDE开发工具都提供这些模板代码的自动生成,或者一些编辑器也提供Snippet功能,来减少这些重复性的工作。以最常见的Java开发IDE的Eclipse为例,他可以提供getter()/setter()、equals()、hashCode()、toString()等方法的自动生成。

Lombok是基于MIT license的去除Java特有模板代码的工具。他并不像Eclipse那样自动去生成代码,而是在编写代码的时候使用注解来达到同样的效果。

官网:http://projectlombok.org/

Lombok可以直接在javac命令中使用,也可以结合Eclipse或NetBeans等IDE工具使用。首先需要在官网下载lombok.jar(v0.12.0 "Angry Butterfly" (July 16th, 2013))。

如果使用javac编译Java文件的话,可以将lombok.jar放到classpath下,或者使用
引用
javac -cp lombok.jar MyCode.java


不过一般我们更习惯使用IDE工具,所以双击Lombok.jar,他可以自动检测机器上的Eclipse或NetBeans等IDE,选择你想使用的IDE后点击“Install/Update”后重启IDE,然后还需要将Lombok.jar添加到你的工程的Build path中。

如果不能检测到IDE的话,可以按照官方说明手动配置一下Lombok.jar。
以Eclipse为例:
1. 将 lombok.jar 复制到 eclipse.ini 所在的文件夹目录下
2. 打开 eclipse.ini,在最后面插入以下两行并保存:
  -javaagent:lombok.jar
  -Xbootclasspath/a:lombok.jar
3.重启 eclipse

Lombok核心特征是使用注解来在编译期创建代码从而达到减少模板代码的书写。

以下看看它的一些常见用法。

(1)成员变量的访问
以一个最常见的Bean为例:Member(id、name、sex)

一般我们的写法是:
public class Member {
    private int id;
    private String name;
    private boolean sex;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public boolean isSex() {
        return sex;
    }
    public void setSex(boolean sex) {
        this.sex = sex;
    }
}



使用了Lombok的@Getter @Setter
import lombok.Getter;
import lombok.Setter;

@Getter @Setter
public class Member1 {
    private int id;
    private String name;
    private boolean sex;
}



使用了Lombok的@EqualsAndHashCode
import lombok.EqualsAndHashCode;

@EqualsAndHashCode
public class Member2 {
    private int id;
    private String name;
    private boolean sex;
}



使用了Lombok的@ToString
import lombok.ToString;

@ToString
public class Member3 {
    private int id;
    private String name;
    private boolean sex;
}



使用了Lombok的@Data
import lombok.Data;

@Data
public class Member4 {
    private int id;
    private String name;
    private boolean sex;
}



(2)构造函数
import lombok.AllArgsConstructor;

@AllArgsConstructor
public class Constructor {
    private int id;
    private String name;
    private boolean sex;
}



import lombok.RequiredArgsConstructor;

@RequiredArgsConstructor
public class Constructor1 {
    private final int id;
    private String name;
    private boolean sex;
}



import lombok.NoArgsConstructor;

@NoArgsConstructor
public class Constructor2 {
    private int id;
    private String name;
    private boolean sex;
}



(3)异常
一般的异常处理代码:
public void read() {
    try {
        FileReader in = new FileReader("data.txt");
        // ...以后代码省略
    } catch (FileNotFoundException e) {
        // ...异常处理省略
    }
}


使用Lombok的@SneakyThrows
@SneakyThrows
public void read1() {
    FileReader in = new FileReader("data.txt");
    // ...以后代码省略
}


(4)同步
一般的同步处理代码:
public synchronized void countup1() {
    // 同步处理
}

public void countup2() {
    synchronized (this) {
        // 同步处理
    }
}

private final Object lock = new Object();

public void countup3() {
    synchronized(lock) {
        // 同步处理
    }
}


使用Lombok的@Synchronized
@Synchronized
public void countup() {
    // 同步处理
}


官方网站上提供了一段视频,对于Lombok的使用提供了很详细的说明!

参考:
http://codezine.jp/article/detail/7274
http://java.dzone.com/articles/lombok-reduces-your
http://www.oschina.net/translate/lombok-reduces-your-boilerplate-code
http://www.blogjava.net/fancydeepin/archive/2012/07/12/lombok.html
http://jnb.ociweb.com/jnb/jnbJan2010.html
  • 大小: 14.6 KB
  • 大小: 9.1 KB
  • 大小: 8.3 KB
  • 大小: 7.2 KB
  • 大小: 11.2 KB
  • 大小: 9.3 KB
  • 大小: 8 KB
  • 大小: 7.7 KB
分享到:
评论

相关推荐

    lombok.jar网盘

    lombok是一个可以通过简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 Java 代码的工具,简单来说,比如我们新建了一个类,然后在其中写了几个字段,然后通常情况下我们需要手动去建立getter和setter...

    lombok-plugin

    IDE(intellij_idea)中安装lombok plugin,可以通过简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 Java 代码的工具,简单来说,比如我们新建了一个类,然后在其中写了几个字段,然后通常情况下我们...

    lombok-plugin-0.16-2017.2.1

    lombok是一个可以通过简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 Java 代码的工具,简单来说,比如我们新建了一个类,然后在其中写了几个字段,然后通常情况下我们需要手动去建立getter和setter...

    Lombok 注解工具类

    lombok 通过注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 Java 代码的工具,比如属性getter,setter,构造函数等。 具体使用方式可以参考官网说明:https://projectlombok.org/features/all

    java编译过的源码-lombok:Lombok是一个可以通过简单的注解形式来帮助我们简化消除一些必须有但显得很臃肿的Java代码的工具,通过

    java编译过的源码

    Idea下安装插件: lombok-plugin-0.16-2017.2

    lombok是一个可以通过简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 Java 代码的工具。 lombok的作用就是为了省去我们手动创建这些代码的麻烦,它能够在我们编译源码的时候自动帮我们生成这些方法。

    lombok-1.18.8lhr.zip

    lombok-1.18.8的jar包,使用与离线时,或网络不通畅时,lombok是一个可以通过简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 Java 代码的工具

    lombok-edge.jar

    Lombok是一个可以通过简单的注解形式来帮助我们简化消除一些必须有但显得很臃肿的Java代码的工具,通过使用对应的注解,可以在编译源码的时候生成对应的方法

    lombok-plugin-idea插件

    该资源为idea lombok插件,可直接导入idea使用。 Lombok是一个可以通过简单的注解形式来帮助我们简化消除一些必须有但显得很臃肿的Java代码的工具,通过使用对应的注解,

    lombok.jar

    lombok是一个可以通过简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 Java 代码的工具,简单来说,比如我们新建了一个类,然后在其中写了几个字段,然后通常情况下我们需要手动去建立getter和setter...

    lombok8.rar

    Lombok简介 Lombok是一个可以通过简单的注解形式来帮助我们简化消除一些必须有但显得很臃肿的Java代码的工具,通过使用对应的注解,可以在编译源码的时候生成对应的方法

    lombok-plugin-0.28-2019.3.zip

    Lombok是一个可以通过简单的注解形式来帮助我们简化消除一些必须有但显得很臃肿的Java代码的工具,通过使用对应的注解,可以在编译源码的时候生成对应的方法。官方地址:https://projectlombok.org/,github地址:...

    lombok plugin v0.16.jar插件包.zip

    lombok plugin v0.16源码编译JAVA代码注解生成工具,能够帮助程序员简化并消除臃肿的Java代码,例如,在新建类后,添加字段手中,需要手动建立getter和setter方法、创建构建各类函数,非常繁琐,lombok plugin的...

    SpringBoot集成Druid+MariaDB+Lombok+Mybatis-Plus详解

    Lombok:是一个可以通过简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 Java 代码的工具,简单来说,比如我们新建了一个类,然后在其中写了几个属性,然后通常情况下我们需要手动去建立getter和setter...

Global site tag (gtag.js) - Google Analytics