POJO的设计规范
所有用于声明属性的类,都应该遵循以下规范:
存在无参数构造方法
所有属性都是私有权限(
private
)的添加每个属性对应的Setters & Getters
添加基于所有属性的
hashCode()
与equals()
必须保证:如果2个对象的所有属性值完全相同,则
equals()
对比结果为true
,否则,返回false
,如果2个对象的equals()
为true
,则这2个对应的hashCode()
返回相同的值,否则,返回不同的值通常,所有专门的开发软件生成的这2个方法都符合以上特征
实现
Serializable
接口另外,为了便于观察各属性的值,建议添加
toString()
方法。
使用框架都会按照这个规范去偷偷调用你的方法,所以我们也要去遵循这个规范。
如下:
package cn.tedu.coolshark.pojo.dto;
public class UserDto implements Serializable{
private String username;
private String password;
private Boolean rem;
@Override
public String toString() {
return "UserDto{" +
"username='" + username + '\'' +
", password='" + password + '\'' +
", rem=" + rem +
'}';
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Boolean getRem() {
return rem;
}
public void setRem(Boolean rem) {
this.rem = rem;
}
}
Lombok框架
Lombok的主要作用是:通过特定的注解,在编译期生成对应的代码。
使用Lombok框架在类上添加@Data
注解,则会生成满足POJO规范的所有属性对应的Setters & Getters、hashCode()
、equals()
、toString()
方法:
@Data
public class Album implements Serializable {
private Long id;
private String name;
private String description;
private Integer sort;
private LocalDateTime gmtCreate;
private LocalDateTime gmtModified;
}
大大减少代码量同时很方便在后面对属性进行调整增减。
使用此框架需要添加依赖:
<lombok.version>1.18.20</lombok.version>
<!-- Lombok的依赖项,主要用于简化POJO类的编写 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</dependency>
注意:使用@Data
注解时,需要保证当前类的父类存在无参数构造方法。
注意:你需要在开发工具中安装Lombok插件:
如果没有安装插件,在编写代码时,开发工具无法给出快捷提示,并且,直接写出相关的代码也会报红,但是,并不影响运行!
由于使用Lombok框架,需要在开发工具中安装对应的插件,所以,并不是所有人都喜欢使用这个框架,甚至有些开发团队会禁止使用这个框架。
关于Lombok的常用注解,可参考安装插件的界面:
怎么去看这些注解可以加在什么地方:
ctrl+鼠标左键点进去注解
Target表示目标,代表能加在的位置,FIELD代表可以加在属性上,TYPE代表可以加在类上