你的团队使用lombok吗?

   日期:2020-07-10     浏览:93    评论:0    
核心提示:什么是lombok?lombok是一个Java库,它提供了一组注解用来消除Java的样板代码,使代码更加清晰简洁,让你专注于业务功能的实现。lombok提供了如下主要注解:@Setter 注解在类或字段,注解在类时为所有字段生成setter方法,注解在字段上时只为该字段生成setter方法@Getter 使用方法同@Setter,只不过生成的是对应的getter方法@Data 注解在类,生成setter/getter、equals、canEqual、hashCode、toString方法,如为

什么是lombok?

lombok是一个Java库,它提供了一组注解用来消除Java的样板代码,使代码更加清晰简洁,让你专注于业务功能的实现。

lombok提供了如下主要注解:

  • @Setter 注解在类或字段,注解在类时为所有字段生成setter方法,注解在字段上时只为该字段生成setter方法
  • @Getter 使用方法同@Setter,只不过生成的是对应的getter方法
  • @Data 注解在类,生成setter/getter、equals、canEqual、hashCode、toString方法,如为final属性,则不会为该属性生成setter方法
  • @ToString 注解在类,生成toString()方法
  • @EqualsAndHashCode 注解在类,生成hashCode和equals方法
  • @NoArgsConstructor 注解在类,生成无参的构造方法
  • @RequiredArgsConstructor 注解在类,为类中需要特殊处理的字段生成构造方法,比如final和被@NonNull注解的字段
  • @AllArgsConstructor 注解在类,生成包含类中所有字段的构造方法
  • @Builder 使用建造者模式
  • @Slf4j 注解在类,生成log常量

我们平时主要用到的估计就@Setter、@Getter、@Data、@Builder、@Slf4j

在开始写代码之前,你需要做两件事

  • 引入lombok jar包
  • IDE安装lombok插件

gradle依赖

compile group: 'org.projectlombok',name: 'lombok',version: '1.16.20'

idea安装lombok插件,并开启配置

@Setter、@Getter用法

@Setter
@Getter
public class User {
    private String name;
    private String address;
}

public class LombokDemo {
    public static void main(String[] args){
        User user = new User();
        user.setName("name");
        user.setAddress("my address");
        System.out.println(user.getName() + "|" + user.getAddress());
    }
}

可以看到User类打上@Setter、@Getter后就不用写setter、getter方法了,减少了很多模板代码

@Data用法

@Data注解在类上同样也可以达到不用写Setter、Getter的效果,除此之外,它还帮你生成了equals、canEqual、hashCode、toString方法

@Data
public class User {
    private String name;
    private String address;
}

@Builder用法

@Builder注解在类上,可以使用建造者模式来构造对象

@Data
@Builder
public class User {
    private String name;
    private String address;
}

public class LombokDemo {
    public static void main(String[] args){
        User user = User.builder()
                .name("name")
                .address("my address")
                .build();
    }
}

可以看到,我们直接通过builder()方法和一连串的属性设值来构造出对象,很方便

@Slf4j用法

@Slf4j注解用来生成log常量,记录日志

@Slf4j
public class LombokDemo {
    public static void main(String[] args){
        log.info("run~~~");
        User user = User.builder()
                .name("name")
                .address("my address")
                .build();
    }
}

在类上加了@Slf4j注解后,类中就可以直接用log常量来记录日志

为啥有些开发人员不推荐使用Lombok

既然上面列举了很多lombok的好处,它能帮我们做很多事,那为啥有些开发人员不推荐使用呢?

lombok是一把双刃剑,给你带来方便的同时,也会给你带来一些麻烦,比如:

  • 强迫队友安装lombok插件,只要引入了lombok,你队友的IDE就必须安装lombok插件,要不然代码无法编译
  • 代码可调试性降低,因为lombok给你自动生成了一些代码,这些代码是在编译的时候才自动生成的,你在调试的时候是没有的
  • 假如我们要在getter和setter中做些自定义的操作,就不能使用@Data注解自动生成

总结

Lombok是一个很有用的Java库,它提供了一组注解用来消除Java中的模板代码,这对于有代码洁癖的同学来说是福音

Lombok有如下好处:

  • 减少样板代码,如get,set,toString,hash,equal等方法,大量的模板代码进行封装,减少重复代码,当增加新属性的时候,以上方法都不需要再重新编写
  • 增强代码可读性:专注于类的属性定义,不需要再去为排版浪费时间

Lombok有如下弊端:

  • 强迫队友安装lombok插件
  • 代码可调试性降低
  • 要在getter和setter中做些自定义的操作,就不能使用@Data注解自动生成

当然lombok只是一个工具,到底要不要使用,还需要结合实际情况来做一些衡量

你的团队在使用lombok吗?欢迎给我留言~

如果感觉对你有些帮忙,请收藏好,你的关注和点赞是对我最大的鼓励!
如果想跟我一起学习,坚信技术改变世界,请关注【Java天堂】公众号,我会定期分享自己的学习成果,第一时间推送给您


参考:
https://baike.baidu.com/item/Lombok/23780246?fr=aladdin
https://msd.misuland.com/pd/4146263399224842234

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服