从@NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor开始了解Lombok插件

接触Lombok

@NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor。是Lombok插件三种生成不同构造方法的注解,来完成项目中不同构造方法的需求。

  • @NoArgsConstructor : 生成一个无参数的构造方法
  • @AllArgsContructor: ?会生成一个包含所有变量
  • @RequiredArgsConstructor: 会生成一个包含常量,和标识了NotNull的变量的构造方法。生成的构造方法是私有的private。
  • 主要使用前两个注解,这样就不需要自己写构造方法,代码简洁规范。

看Lombok注解的全貌

Lombok是一个通过注解形式帮助构造简洁、规范的Java代码的工具,通过使用对应的注解,可以在编译源码的时候生成对应的方法。
下载地址:
github地址:https://github.com/rzwitserloot/lombok
官方地址:https://projectlombok.org/。
官方API : https://projectlombok.org/features/all

在IDEA中使用它的过程

  • 安装
    这里写图片描述

  • Maven项目引入lombok的jar

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

常用注解介绍

  • @Getter and @Setter
    可以用@Getter / @Setter注释字段(也可以注释到类上的—(在实体类中常用且推荐)),lombok会自动生成默认的Getter/Setter方法。

  • @ToString
    自动生成toString()方法,默认情况,按顺序(以“,”分隔)打印你的类名称以及每个字段。也可以设置不包含哪些字段/@ToString(exclude = {“id”,“name”})

import lombok.ToString;
@ToString(exclude = {"id","name"})
public class User {
  private Integer id;
  private String name;
  private String phone;
}
实际生成的toString()方法
public String toString(){
  return "User(phone=" + phone + ")";
}

  • @Synchronized
    给方法加上同步锁,建议直接写在代码中Synchronized

参考文章 链接:https://www.jianshu.com/p/365ea41b357 作者:缓慢移动的蜗牛 來源:简书

  • 26
    点赞
  • 90
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
@NoArgsConstructor和@AllArgsConstructorLombok库中的两个注解,用于自动生成类的构造方法。 @NoArgsConstructor注解会自动生成一个无参的构造方法,可以用于创建对象时不需要传入任何参数。这个注解常用于需要使用无参构造方法实例化对象的场景。 @AllArgsConstructor注解会自动生成一个包含所有字段作为参数的构造方法,可以用于创建对象时传入所有字段的值。这个注解常用于需要在实例化对象时一次性传入全部字段的场景。 下面是一个使用@AllArgsConstructor注解的例子: ```java @Component @AllArgsConstructor public class ConstructorDemo { private BeanTest1 beanTest1; @NonNull private BeanTest2 beanTest2; private BeanTest3 beanTest3; @Value("${constructor.name:hello}") private String name; } ``` 在这个例子中,构造方法会接收BeanTest1、BeanTest2、BeanTest3和name作为参数,并将它们赋值给对应的字段。注意,由于@BeanTest2被@NonNull修饰,所以它必须在构造方法中传入一个非null的值,否则会抛出NullPointerException异常。 另外,还有一个注解@RequiredArgsConstructor,它与@AllArgsConstructor类似,也会生成一个包含被final修饰或者@NonNull修饰的字段作为参数的构造方法。它的作用是确保这些字段在实例化对象时都必须被传入值。 总结起来,@NoArgsConstructor用于生成无参构造方法,@AllArgsConstructor用于生成包含所有字段的构造方法,@RequiredArgsConstructor用于生成包含被final修饰或者@NonNull修饰的字段的构造方法。这些注解可以简化代码,提高开发效率。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [@NoArgsConstructor、@AllArgsConstructor、@RequiredArgsConstructor的区别以及在springboot常用地方](https://blog.csdn.net/xueyijin/article/details/124618309)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值