@Data、@EqualsAndHashCode和@Accessors注解的用法

这些注解都属于lombok包。

看别人的代码用到@Data注解,以前没见过,今天查了一下它的作用:

注解在类上, 为类提供读写属性, 此外还提供了 equals()、hashCode()、toString() 方法。

@Data的使用方法

1.引入依赖:要使用 @Data 注解要先引入lombok,lombok 是什么,它是一个工具类库,可以用简单的注解形式来简化代码,提高开发效率。

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

2.直接在相应的实体类上加上@Data注解即可;

@Data
public class User {
    private int id;
    private String name;
    private int age ;
    private byte[] photo;
    private List<User> list ;
}

添加注解后可以看到类中自动加入了get(),set(),以及toString()方法等。

 以下为其他常用的注解:

@EqualsAndHashCode:生成Equals方法和HashCode方法, 但@Data注解包括@Getter、  @Setter、@RequiredArgsConstructor、    @ToString、@EqualsAndHashCode

注:@Data注解在派生子类上时默认@EqualsAndHashCode(callSuper = false),即重写子类的equals和hashcode不包含父类

@AllArgsConstructor : 注在类上,提供类的全参构造
@NoArgsConstructor : 注在类上,提供类的无参构造

@Accessors:

(1)该注解主要作用是:当属性字段在生成 getter 和 setter 方法时,做一些相关的设置。

(2)当它可作用于类上时,修饰类中所有字段,当作用于具体字段时,只对该字段有效。

   该字段共有三个属性,分别是 fluent,chain,prefix

   fluent:默认为false, 若设置为ture,对应字段的 getter 方法前面就没有 get,setter 方法就不会有 set。例如:

  chain:默认为false,当该值为 true 时,对应字段的setter方法调用后,会返回当前对象。

pre 该属性是一个字符串数组,当该数组有值时,表示忽略字段中对应的前缀,生成对应的 getter 和 setter 方法。

比如现在有 xxName 字段和 yyAge 字段,xx 和 yy 分别是 name 字段和 age 字段的前缀。

那么,我们在生成的 getter 和 setter 方法如下,它也是带有 xx 和 yy 前缀的。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值