[POJO]POJO的设计规范&Lombok框架

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代表可以加在类上

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值