Lombok 使用详解:

一、Lombok简介:

    Lombok是一个基于LGPL的开源J2EE综合开发环境的Eclipse插件,对编码,发布,以及debug等各个软件开发的生命周期提供支持,支持JSP,EJB等。Lomboz是Eclipse的一个J2EE的插件,它将很多java应用服务器、J2EE组件和Web应用开发集成到Eclipse中,可以帮助Java开发者使用Eclipse建立、测试、部署J2EE应用。

    lombok 以简单的注解的形式来精简 java 代码,提升开发人员生产效率的辅助工具。特别是相对于 POJO,利用注解在编译期自动生成setter/getter/toString()/constructor之类的代码。

二、lombok 安装:

     使用 lombok 是需要安装的,如果不安装,IDE 则无法解析 lombok 注解。先在官网下载最新版本的 JAR 包,我下载的是lombok-1.16.4.jar

(1). 法一:双击下载下来的 JAR 包安装 lombok   

       安装目录为eclipse安装路径,安装完成后,查看eclipse.ini 是否出现配置:

  -Xbootclasspath/a:lombok.jar
        -javaagent:lombok.jar                          若出现,则说明安装成功。

(2).法二:eclipse / myeclipse 手动安装 lombok   

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

(3).法三:IDE软件安装lombok插件

三、Maven添加依赖

<dependencies>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.16.10</version>
    </dependency>
</dependencies>

四、lombok 注解:   

    lombok 提供的注解不多,可以参考官方视频的讲解和官方文档。
    Lombok 注解在线帮助文档:http://projectlombok.org/features/index.
    下面介绍几个我常用的 lombok 注解:

 (1)@Data   :注解在类上;

        自动为所有字段添加:

        @ToString

        @EqualsAndHashCode

        @Getter方法

       为非final字段添加

       @Setter

       @RequiredArgsConstructor

 (2)@Setter/@Gette:注解在属性上;为属性提供 setting/getting 方法(自动生成Getter/Setter方法)

使用lombok:

    import lombok.AccessLevel;
    import lombok.Getter;
    import lombok.Setter; public class GetterSetterExample { @Getter @Setter private int age = 10; @Setter(AccessLevel.PROTECTED) private String name; }

不使用lombok:

public class GetterSetterExample { private int age = 10; private String name; public int getAge() { return age; } public void setAge(int age) { this.age = age; } protected void setName(String name) { this.name = name; } }

 (3)@Log4j :注解在类上;为类提供一个 属性名为log 的 log4j 日志对象
 (4)@Slf4j :    注解在类上;为类提供一个 属性名为log 的 log4j 日志对象 
 (5)@NoArgsConstructor:注解在类上;为类提供一个无参的构造方法 
 (6)@AllArgsConstructor:注解在类上;为类提供一个全参的构造方法
 (7)@NonNull : 注解在属性上,用来校验参数(可以帮助我们避免空指针)

   使用lombok:

  import lombok.NonNull;
    public class NonNullExample extends Something {
        private String name;  
        public NonNullExample(@NonNull Person person) {
        super("Hello");
        this.name = person.getName();
    }
}

不使用lombok:

public class NonNullExample extends Something {
    private String name;  
    public NonNullExample(@NonNull Person person) {
        super("Hello");
        if (person == null) {
            throw new NullPointerException("person");
        }
        this.name = person.getName();
    }
}

(8) @Cleanup: 自动帮我们调用close()方法。

使用lombok:

import lombok.Cleanup;
import java.io.*;
public class CleanupExample { public static void main(String[] args) throws IOException { @Cleanup InputStream in = new FileInputStream(args[0]); @Cleanup OutputStream out = new FileOutputStream(args[1]); byte[] b = new byte[10000]; while (true) { int r = in.read(b); if (r == -1) break; out.write(b, 0, r); } } }

不使用lombok:

import java.io.*;
    public class CleanupExample { public static void main(String[] args) throws IOException { InputStream in = new FileInputStream(args[0]); try { OutputStream out = new FileOutputStream(args[1]); try { byte[] b = new byte[10000]; while (true) { int r = in.read(b); if (r == -1) break; out.write(b, 0, r); } } finally { if (out != null) { out.close(); } } } finally { if (in != null) { in.close(); } } } }

转载于:https://www.cnblogs.com/dahai2392/p/8571900.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值