如何让@Data排除掉@EqualsAndHashCode
时间: 2023-10-20 11:31:03 浏览: 102
我怀疑这是IDEA的BUG,但是我翻遍全网没找到证据!.doc
要让@Data排除掉@EqualsAndHashCode注解,有两种方法可以解决这个问题。第一种方法是使用@Getter、@Setter和@ToString注解代替@Data注解,并自定义equals(Object other)和hashCode()方法。在自定义equals(Object other)和hashCode()方法时,你可以根据需要选择只判断主键id是否相等即可,而不需要使用父类的属性。这样就可以排除掉@EqualsAndHashCode注解。
另一种方法是在使用@Data注解时同时加上@EqualsAndHashCode(callSuper=true)注解。通过官方文档我们可以得知,当使用@Data注解时,会生成默认的equals(Object other)和hashCode()方法,并且不会使用父类的属性。然而,当加上@EqualsAndHashCode(callSuper=true)注解后,就会包括父类的属性在内。所以,通过在@Data注解中加上@EqualsAndHashCode(callSuper=true)注解,也可以实现排除掉@EqualsAndHashCode注解的效果。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *3* [lombok @Data @EqualsAndHashCode](https://blog.csdn.net/weixin_44766712/article/details/116309428)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* [@EqualsAndHashCode() 和@Data注解的关系](https://blog.csdn.net/aiwaston/article/details/104722283)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文