Lombok介绍

    科技2022-07-20  105

    1.官网介绍

    Project Lombok is a java library that automatically plugs into your editor and build tools, spicing up your java.Never write another getter or equals method again, with one annotation your class has a fully featured builder, Automate your logging variables, and much more.

    中文意思:Project Lombok是一个java库,它可以自动插入到您的编辑器和构建工具中,为您的java注入新的活力。不要再编写其他getter或equals方法,有了一个注释,类就有了功能齐全的构建器、自动化日志变量等等。

    2.使用(IDEA)

    IDEA安装Lombok插件引入Maven依赖 <dependencies> <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.10</version> </dependency> </dependencies> 在代码中增加注解

    @Data

    @Data注解在类上,会为类的所有属性自动生成setter/getter、equals、canEqual、hashCode、toString方法,如为final属性,则不会为该属性生成setter方法。

    package com.liu.pojo; import lombok.Data; import java.util.Date; /** * @author liucong * @date 2020/10/4 - 15:15 */ @Data public class Blog { private String id; private String title; private String author; private Date createTime; private int views; }

    @Getter/@Setter

    此注解在属性上,可以为相应的属性自动生成Getter/Setter方法。

    package com.liu.pojo; import lombok.Getter; import lombok.Setter; /** * @author liucong * @date 2020/10/4 - 9:25 */ public class Student { @Setter@Getter private int id; private String name; private int tid; }

    @ToString

    类使用@ToString注解,Lombok会生成一个toString()方法,默认情况下,会输出类名、所有属性(会按照属性定义顺序),用逗号来分割。

    例如:Student(id=1, name=lisi, tid=1)

    @NoArgsConstructor , @AllArgsConstructor

    无参构造器、全参构造器。

    package com.liu.pojo; import lombok.AllArgsConstructor; import lombok.NoArgsConstructor; /** * @author liucong * @date 2020/10/4 - 9:25 */ @NoArgsConstructor @AllArgsConstructor public class Student { private int id; private String name; private int tid; }

    3.Lombok的优缺点

    优点:

    能通过注解的形式自动生成构造器、getter/setter、equals、hashcode、toString等方法,提高了一定的开发效率让代码变得简洁,不用过多的去关注相应的方法属性做修改时,也简化了维护为这些属性所生成的getter/setter方法等

    缺点:

    不支持多种参数构造器的重载虽然省去了手动创建getter/setter方法的麻烦,但大大降低了源代码的可读性和完整性,降低了阅读源代码的舒适度
    Processed: 0.009, SQL: 8