lombok的导入问题及其常用注解

lombok的作用

普通对象中,往往有着很多的属性,lombok带来了很多注解,可以简化代码开发,减少了大量set,get方法的书写。

pom坐标的导入

在pom.xml文件中,添加以下依赖坐标:

<dependency>
	<groupId>org.projectlombok</groupId>
	<artifactId>lombok</artifactId>
	<optional>true</optional>
</dependency>

此时,刷新maven依赖出现异常:Unresolved dependency: 'org.projectlombok:lombok:jar:unknown'。

解决思考:

1、是否没有安装Lombok 插件?

在idea -> settings -> plugins中检查发现已安装,排除该问题

2、是否未添加版本号的问题,导致无法导入

后续添加版本号后,lombok导入成功(网上很多坐标导入没有引入版本号,需注意)

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.12</version>
    <optional>true</optional>
</dependency>

3、解决中发现的问题

在无版本号时,选择添加<parent>,指定了Spring Boot启动器的父项目后也可以加载lombok成功,具体原因猜测是spring-boot-starter-parent中存在lombok,会自动匹配版本号

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.3.4.RELEASE</version>
</parent>

常见注解

@Getter:

  • 自动生成 getter 方法

@Setter:

  • 自动生成setter方法

@Data:

  • 自动生成 getter 和 setter 方法。
  • 自动生成 equals、hashCode 和 toString 方法。

其中对toString方法进行测试:

public class Student {
    private String name;
    private Long age;
}


public class JSONParseObject {
    public static void main(String[] args) {
        String st = new Student().toString();
        System.out.println("student对象为:" + st);
    }
}
  • 当不添加@Data注解时,输出student对象为:json.parseObject.Student@452b3a41。添加注解后,输出student对象为:Student(name=null, age=null)

@NoArgsConstructor:

  • 得到一个无参的构造器,方便实例化对象时无需传入参数

@AllArgsConstructor:

  • 得到一个包含全部参数的构造器

当同时存在@NoArgsConstructor、@AllArgsConstructor时,new新建对象时,会自动匹配

public class JSONParseObject {
    public static void main(String[] args) {
        String st1 = new Student().toString();
        System.out.println("student1对象为:" + st1);
        Student st2 = new Student("名字", 23);
        System.out.println("student2对象为:" + st2);
    }
}

当存在@Data注解时,输出结果为:
student1对象为:Student(name=null, age=0)
student2对象为:Student(name=名字, age=23)

相关推荐

  1. Spring MVC中注解及其

    2023-12-28 14:38:02       42 阅读
  2. Lombok简化开发工具注解应用

    2023-12-28 14:38:02       42 阅读
  3. Lombok详细使用说明及其注意事项和Lombok注解详解

    2023-12-28 14:38:02       50 阅读
  4. SpringBoot20个注解及其作用

    2023-12-28 14:38:02       30 阅读
  5. spring boot 注解

    2023-12-28 14:38:02       33 阅读
  6. 【数学】等价无穷小及其注意事项示例

    2023-12-28 14:38:02       42 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-28 14:38:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-28 14:38:02       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-28 14:38:02       87 阅读
  4. Python语言-面向对象

    2023-12-28 14:38:02       96 阅读

热门阅读

  1. WPF Grid

    2023-12-28 14:38:02       58 阅读
  2. 【头歌实训】Spark 完全分布式的安装和部署

    2023-12-28 14:38:02       56 阅读
  3. IP多播多播多播

    2023-12-28 14:38:02       64 阅读
  4. Vuex的介绍

    2023-12-28 14:38:02       52 阅读
  5. docker:保存容器为镜像文件

    2023-12-28 14:38:02       54 阅读
  6. centos 编译安装 python 和 openssl

    2023-12-28 14:38:02       53 阅读
  7. Linux(openssl):用CA证书签名具有SAN的CSR

    2023-12-28 14:38:02       57 阅读
  8. Alibaba Cloud Linux 3.2104 LTS 64位镜像兼容CentOS吗?

    2023-12-28 14:38:02       54 阅读