当前位置: 首页 > wzjs >正文

网站建设的技术支持宁波seo超级外链工具

网站建设的技术支持,宁波seo超级外链工具,wordpress小程序 标签,代做网站的好处在Java开发中,我们经常需要重写equals()和hashCode()方法,以确保对象在集合类(如HashSet、HashMap等)中能正确地进行比较和存储。Lombok提供了EqualsAndHashCode注解,可以帮助我们自动生成这些方法,大大简化…

在Java开发中,我们经常需要重写equals()hashCode()方法,以确保对象在集合类(如HashSetHashMap等)中能正确地进行比较和存储。Lombok提供了@EqualsAndHashCode注解,可以帮助我们自动生成这些方法,大大简化了代码编写。本文将结合具体的Java代码示例,详细介绍@EqualsAndHashCode注解的使用。

示例代码结构

我们有三个Java文件,分别是EqualsAndHashCode使用.javaChild.javaParent.java。下面我们来详细分析这些文件。

Parent.java

package com.gqy.question.知识点.EqualsAndHashCode使用;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;@Data
@AllArgsConstructor
@NoArgsConstructor
class Parent{private Integer id;private String name;
}

这个类使用了Lombok的@Data@AllArgsConstructor@NoArgsConstructor注解,分别用于自动生成getter、setter、toString等方法,全参数构造函数和无参数构造函数。

Child.java

package com.gqy.question.知识点.EqualsAndHashCode使用;import lombok.*;@Data
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class Child extends Parent{private Integer age;private String desc;
}

Child类继承自Parent类,除了使用@Data@AllArgsConstructor@NoArgsConstructor注解外,还使用了@EqualsAndHashCode(callSuper = true)@ToString(callSuper = true)注解。@EqualsAndHashCode(callSuper = true)表示在生成equals()hashCode()方法时,会考虑父类的属性。

EqualsAndHashCode使用.java

package com.gqy.question.知识点.EqualsAndHashCode使用;import java.util.HashMap;
import java.util.HashSet;/*** @author 顾无言* @version 1.0* @description: TODO* @date 2025/2/14 9:26*/public class EqualsAndHashCode使用 {public static void main(String[] args) {Child child1 = new Child();child1.setId(1);child1.setName("张三");child1.setAge(18);child1.setDesc("美女");Child child2 = new Child();child2.setId(2);child2.setName("李四");child2.setAge(18);child2.setDesc("美女");/***不使用@EqualsAndHashCode注解,打印结果为true* 得出结论:不使用@EqualsAndHashCode注解,默认情况下,判断的是当前类内部所有属性的值是否相等,如果相等,则认为这两个对象是相等的。*         不会比较继承的父类属性字段**//*** 使用@EqualsAndHashCode(callSuper = false)注解,打印结果为true* 得出结论:使用@EqualsAndHashCode(callSuper = false),判断的是当前类内部所有属性的值是否相等,如果相等,则认为这两个对象是相等的。*         不会比较继承的父类属性字段**//*** 使用@EqualsAndHashCode(callSuper = true)注解,打印结果为false* 得出结论:使用@EqualsAndHashCode(callSuper = true),判断的是当前类内部所有属性的值 以及 父类的所有字段属性是否相等,如果相等,则认为这两个对象是相等的。**//*** 综上:*  不使用@EqualsAndHashCode = @EqualsAndHashCode(callSuper = false)   只比较当前类的属性字段*  @EqualsAndHashCode(callSuper = true)    比较当前类的属性字段 以及 父类的所有字段属性**/System.out.println(child1.equals(child2));int i1 = child1.hashCode();int i2 = child2.hashCode();System.out.println(i2);System.out.println(i1);HashSet<Child> set = new HashSet<>();set.add(child1);set.add(child2);for (Child child : set) {System.out.println(child.toString());}}}

在这个类的main方法中,我们创建了两个Child对象child1child2,并对它们的属性进行了赋值。然后通过不同的@EqualsAndHashCode注解使用情况进行比较,得出了以下结论:

不同使用情况及结论

不使用@EqualsAndHashCode注解

默认情况下,equals()方法判断的是当前类内部所有属性的值是否相等,如果相等,则认为这两个对象是相等的,不会比较继承的父类属性字段

不会重写equals()hashCode()方法

使用@EqualsAndHashCode(callSuper = false)注解

这种情况下,equals()方法判断的也是当前类内部所有属性的值是否相等,如果相等,则认为这两个对象是相等的,同样不会比较继承的父类属性字段

重写equals()hashCode()方法

使用@EqualsAndHashCode(callSuper = true)注解

此时,equals()方法判断的是当前类内部所有属性的值以及父类的所有字段属性是否相等,只有当这些属性都相等时,才认为这两个对象是相等的。

重写equals()hashCode()方法

总结

  • 不使用@EqualsAndHashCode注解等同于@EqualsAndHashCode(callSuper = false),只比较当前类的属性字段。(在不考虑是否重写equals()hashCode()方法)
  • 使用@EqualsAndHashCode(callSuper = true)会比较当前类的属性字段以及父类的所有字段属性。

通过合理使用@EqualsAndHashCode注解,我们可以根据实际需求来确定对象比较时是否要考虑父类的属性,从而避免手动编写繁琐的equals()hashCode()方法,提高开发效率。

http://www.dtcms.com/wzjs/454769.html

相关文章:

  • 如何做一条动态网站今天特大新闻
  • 做网站优化常用工具媒体发布公司
  • zblog 与wordpressseo建站工具
  • 手机网站软件互联网推广平台
  • 学做内账的网站搜索到的相关信息
  • 流量套餐汇总网站重庆百度seo整站优化
  • 怎么申请 免费网站常用的seo查询工具
  • win2008iis7配置网站北京网站seo哪家公司好
  • 网站建设与运营 好考吗网络广告营销案例
  • 网站制作公司服务今日国内新闻大事20条
  • 做网站的软件行业关键词搜索量排名
  • 义乌制作网站要多少钱福建seo优化
  • 广州网站建设开发软文范例大全500字
  • 网站建设对客户的影响参考消息今天新闻
  • 晋江网站建设公司做网络推广为什么会被抓
  • 做网站哪家专业东莞网站推广的公司
  • 网站建设客服专员百度关键词是怎么排名靠前
  • 西宁网站建设开发苏州网站制作开发公司
  • 谷歌seo搜索seo策划
  • 重庆网站建设找重庆万为大数据精准获客软件
  • 网站tag页面如何做seo相关岗位
  • 重庆网站建设费用关键词搜索量查询工具
  • web app 网站seo研究中心怎么了
  • 前端做网站之后的感想总结网站seo收费
  • 深圳网站设计公司如何大连网站制作
  • 黑龙江省建设教育信息网站推广方案是什么
  • 不用服务器做视频网站sem是什么职业
  • 编写个人网站软文推荐
  • 网站建设厦门互联网广告公司排名前十
  • 网站套利怎么做网络营销创意案例