lombok的导入问题及其常用注解
2023-12-28 14:31:01
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)
文章来源:https://blog.csdn.net/hahaha_2568/article/details/135224606
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!