lombok的基本使用教程

栏目: Java · 发布时间: 7年前

内容简介:lombok的基本使用教程

lombok是一个编译级别的插件,它可以在项目编译的时候生成一些代码。在很多 工具 类的项目中都有这个功能。比如dagger。

通俗的说,lombok可以通过注解来标示生成 getter settter 等代码。我们自然可以通过编译器比如IDEA的 Generate 生成,为啥要用这个?

在项目开发阶段,一个class的属性是一直变化的,今天可能增加一个字段,明天可能删除一个字段。每次变化都需要修改对应的模板代码。另外,有的class的字段超级多,多到一眼看不完。如果加上模板代码,更难一眼看出来。更有甚者,由于字段太多,想要使用builder来创建。手动创建builder和字段和原来的类夹杂在一起,看起来真的难受。lombok的 @Builder 即可解决这个问题。

引入

引入就是加入 lombok 的jar包。

在maven中

直接加入依赖

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.16.20</version>
</dependency>

在gradle中

这里比较麻烦,需要添加一个编译时生成代码的插件。gradle里有几个这样的插件。但为了简化过程,lombok提供了新插件。

来源: 官网github

首先,添加一个plugin

plugins {
    id 'io.franzbecker.gradle-lombok' version '1.11'
}

然后,就可以了。还可以配置lombok的版本:

lombok { // optional: values below are the defaults
    version = "1.16.20"
    sha256 = ""
}

IntelIJ IDEA 插件

在IDEA里使用需要添加一个插件。在插件里搜索lombok,安装,重启。

lombok的基本使用教程

IDEA里需要在设置中启用annotation processors。

lombok的基本使用教程

基本用法

Geeter Setter

最简单的,最常用的,最直观的使用就是getter setter方法。

package com.test.lombok;

import lombok.AccessLevel;
import lombok.Getter;
import lombok.Setter;

import java.util.Date;

/**
 * Created by Ryan Miao on 1/18/18.
 */
public class GetterSetterExample {
    /**
     * Age of the person. Water is wet.
     *
     * @param age New value for this person's age. Sky is blue.
     * @return The current value of this person's age. Circles are round.
     */
    @Getter
    @Setter
    private int age = 10;

    @Getter
    @Setter
    private boolean active;

    @Getter
    @Setter
    private Boolean none;

    @Getter
    @Setter
    private Date date;

    /**
     * Name of the person.
     * -- SETTER --
     * Changes the name of this person.
     *
     * @param name The new value.
     */
    @Setter(AccessLevel.PROTECTED) private String name;

    @Override public String toString() {
        return String.format("%s (age: %d)", name, age);
    }

    public static void main(String[] args) {
        GetterSetterExample example = new GetterSetterExample();
        example.setActive(true);
        example.setAge(123);
        example.setDate(new Date());
        example.setName("abc");
        example.setNone(false);

        Date date = example.getDate();
        Boolean none = example.getNone();
        boolean active = example.isActive();
        
    }
}

简单使用没有问题,深入一点可以看到有些特殊设定。比如javadoc.

  1. Getter 声明创建getter方法;
  2. Setter 声明创建setter方法;
  3. @Setter(AccessLevel.PROTECTED) 可以添加参数,指定权限为私有;
  4. Attention!关于 boolean 的set前缀都是set,但getter不同,小写的 boolean ,即基本类型,前缀是 is ; Boolean ,即包装类型,前缀是 get

编译后的结果如下:

点击显/隐内容

//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//

package com.test.lombok;

import java.util.Date;

public class GetterSetterExample {
    private int age = 10;
    private boolean active;
    private Boolean none;
    private Date date;
    private String name;

    public GetterSetterExample() {
    }

    public String toString() {
        return String.format("%s (age: %d)", this.name, this.age);
    }

    public static void main(String[] args) {
        GetterSetterExample example = new GetterSetterExample();
        example.setActive(true);
        example.setAge(123);
        example.setDate(new Date());
        example.setName("abc");
        example.setNone(false);
        Date date = example.getDate();
        Boolean none = example.getNone();
        boolean active = example.isActive();
    }

    public int getAge() {
        return this.age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public boolean isActive() {
        return this.active;
    }

    public void setActive(boolean active) {
        this.active = active;
    }

    public Boolean getNone() {
        return this.none;
    }

    public void setNone(Boolean none) {
        this.none = none;
    }

    public Date getDate() {
        return this.date;
    }

    public void setDate(Date date) {
        this.date = date;
    }

    protected void setName(String name) {
        this.name = name;
    }
}

以上所述就是小编给大家介绍的《lombok的基本使用教程》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

裂变式创业

裂变式创业

宗毅、小泽 / 机械工业出版社 / 2016-1-1 / 39.84

互联网大潮汹涌来袭,传统企业增长乏力,互联网公司跨界冲击,转型之路迫在眉睫。“转型找死,不转型等死”这一坊间传说让多数企业徘徊不前,不少实体经济面临困境,敢问路在何方? 宗毅独创裂变式创业,用人民币投票选总经理,规定自己不投钱不能参与竞选;不相信干股,不使用职业经理人,用金融的方式管理现金流。用商业模式颠覆传统公益,打通南北充电之路;摇身一变成为自媒体,用产品建立社群。自己写故事,自己当导演......一起来看看 《裂变式创业》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换