Lombok一篇搞定

目录

1.lombok是什么?

2.lombok包含的常用注解的解释

2.1简单举例: 2.2.1没有使用Lombok的代码:

 2.2.2下面是使用lombok之后的代码:

3.lombok怎么用?怎么引入lombok?

 3.1lombok的使用很简单:


1.lombok是什么?

lombok是一个可以通过简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 Java 代码的工具,简单来说,比如我们新建了一个类,然后在其中写了几个字段,然后通常情况下我们需要手动去建立getter和setter方法啊,构造函数啊之类的,lombok的作用就是为了省去我们手动创建这些代码的麻烦,它能够在我们编译源码的时候自动帮我们生成这些方法,虽然有人可能会说IDE里面都自带自动生成这些方法的功能,但是使用lombok会使你的代码看起来更加简洁,写起来也更加方便。

lombok能够达到的效果就是在源码中不需要写一些通用的方法,但是在编译生成的字节码文件中会帮我们生成这些方法,这就是lombok的神奇作用。

官方的解释:Lombok是一个java库,它可以自动插入编辑器和构建工具,为您的java锦上添花。永远不要再写另一个getter或equals方法,只需一个注释,您的类就有一个功能齐全的生成器,自动记录变量,等等。

lombok的官方地址:https://projectlombok.org/

lombok的Github地址:https://github.com/rzwitserloot/lombok

2.lombok包含的常用注解的解释

1. @Data 注解 : 一般用在类上,提供类所有属性的 getset 方法,此外还提供了equalscanEqualhashCodetoString等方法;
2. @Setter 注解:一般用在属性上,为属性提供 set 方法, 用在再类上则表示当前类中所有属性都生成set方法;
3. @Getter 注解:用在属性上,为属性提供 get 方法, 用在再类上表示当前类中所有属性都生成get方法;
4. @Log4j or @Slf4j 注解 :用在类上,为类提供一个 属性名为loglog4j日志对象;
5. @NoArgsConstructor注解:用在类上,为类提供一个无参的构造方法;
6. @AllArgsConstructor注解:用在类上,为类提供一个全参的构造方法;
7. @RequiredArgsConstructor注解: 用在类上,生成一个包含 "特定参数" 的构造器,特定参数指的是那些有加上 final 修饰词的变量们;
8. @Builder注解: 用在类上,自动生成流式 set 值写法,从此之后再也不用写一堆 setter 了;

1. @Data 注解 : 一般用在类上,提供类所有属性的 getset 方法,此外还提供了equalscanEqualhashCodetoString等方法;
2. @Setter 注解:一般用在属性上,为属性提供 set 方法, 用在再类上则表示当前类中所有属性都生成set方法;
3. @Getter 注解:用在属性上,为属性提供 get 方法, 用在再类上表示当前类中所有属性都生成get方法;
4. @Log4j or @Slf4j 注解 :用在类上,为类提供一个 属性名为loglog4j日志对象;
5. @NoArgsConstructor注解:用在类上,为类提供一个无参的构造方法;
6. @AllArgsConstructor注解:用在类上,为类提供一个全参的构造方法;
7. @RequiredArgsConstructor注解: 用在类上,生成一个包含 "特定参数" 的构造器,特定参数指的是那些有加上 final 修饰词的变量们;
8. @Builder注解: 用在类上,自动生成流式 set 值写法,从此之后再也不用写一堆 setter 了;

2.1简单举例:
 2.2.1没有使用Lombok的代码:

public class Master {
    private Integer id;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Master() {
    }

    @Override
    public String toString() {
        return "Master{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                ", skill='" + skill + '\'' +
                '}';
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Master master = (Master) o;
        return Objects.equals(id, master.id) && Objects.equals(name, master.name) && Objects.equals(age, master.age) && Objects.equals(skill, master.skill);
    }

    @Override
    public int hashCode() {
        return Objects.hash(id, name, age, skill);
    }

    public Master(Integer id, String name, Integer age, String skill) {
        this.id = id;
        this.name = name;
        this.age = age;
        this.skill = skill;
    }

    public String getName() {
        return name;
    }

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

    public Integer getAge() {
        return age;
    }

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

    public String getSkill() {
        return skill;
    }

    public void setSkill(String skill) {
        this.skill = skill;
    }

    private String name;
    private Integer age;
    private String skill;
}

 

 2.2.2下面是使用lombok之后的代码:

@Data/*使用这个注解,就不用再去手写Getter,Setter,equals,canEqual,hasCode,toString等方法了,注解后在编译时会自动加进去。*/
@AllArgsConstructor /*全参构造*/
@NoArgsConstructor /*无参空构造*/
public class Master {
    private Integer id;
    private String name;
    private Integer age;
    private String skill;
}

是不是很方便!!!!!

3.lombok怎么用?怎么引入lombok?

 3.1lombok的使用很简单:

        1.首先像引入jar包一样引入Lombok的依赖

       <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>、
            <version>1.18.20</version>
        </dependency>

        2.在对应类上加入对应的注解就好了。比如你不想自己写getter或者setter方法可以在对应的实体类(或者Bean)上加上@Data注解,再者你不想自己写类的有参或者无参构造方法可以在对应的实体类上加入@AllArgsConstructor和@NoArgsConstructor。使用起来就是怎么方便。以上就是本人对lombok的理解和解释欢迎大家评论区补充和讨论。


                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值