呼呼哈哈自用--实体类重写equals和hashcode

2024-04-30 06:08

本文主要是介绍呼呼哈哈自用--实体类重写equals和hashcode,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

开局奉上大神的文章链接
1.https://www.cnblogs.com/yuxiaole/p/9570850.html
2.https://www.cnblogs.com/myseries/p/10977868.html

package com.xxxx.domain.DO;/*** @author TXY*/
public class UserDO {private Long id;private String name;private Integer sex;public UserDO() {}public UserDO(Long id, String name, Integer sex) {this.id = id;this.name = name;this.sex = sex;}public Long getId() {return id;}public void setId(Long id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getSex() {return sex;}public void setSex(Integer sex) {this.sex = sex;}@Overridepublic boolean equals(Object anotherObj){//1.先判断是不是自己,提高运行效率//测试两个对象是否是同一个对象,是的话返回trueif(this == anotherObj){return true;}//测试检测的对象是否为空,是就返回falseif(anotherObj == null){return false;}//参数是否为正确的类型,提高代码健壮性//测试两个对象所属的类是否相同,否则返回falseif (anotherObj instanceof UserDO){//如果是--进行向下转型,父类无法调用子类的成员和方法UserDO anotherUserDO = (UserDO) anotherObj;//最后判断类的所有属性是否相等,其中String类型和Object类型可以用相应的equals()来判断//若姓名和性别一样,则对象相等if(this.getName().equals(anotherUserDO.getName()) &&this.getSex().equals(anotherUserDO.getSex())){return true;}}return false;}@Overridepublic int hashCode(){int result = 17;result = 31 * result + (name == null ? 0 : name.hashCode());result = 31 * result + (age == null ? 0 : age.hashCode());return result;}public static void main(String[] args) {UserDO user1 = new UserDO(1L, "xiaohua", 14);UserDO user2 = new UserDO(2L, "xiaohua", 14);System.out.println((user1.equals(user2)));  //打印为true}
}

这篇关于呼呼哈哈自用--实体类重写equals和hashcode的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/948064

相关文章

java中的HashSet与 == 和 equals的区别示例解析

《java中的HashSet与==和equals的区别示例解析》HashSet是Java中基于哈希表实现的集合类,特点包括:元素唯一、无序和可包含null,本文给大家介绍java中的HashSe... 目录什么是HashSetHashSet 的主要特点是HashSet 的常用方法hasSet存储为啥是无序的

解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题

《解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题》文章详细描述了在使用lombok的@Data注解标注实体类时遇到编译无误但运行时报错的问题,分析... 目录问题分析问题解决方案步骤一步骤二步骤三总结问题使用lombok注解@Data标注实体类,编译时

Python实现将实体类列表数据导出到Excel文件

《Python实现将实体类列表数据导出到Excel文件》在数据处理和报告生成中,将实体类的列表数据导出到Excel文件是一项常见任务,Python提供了多种库来实现这一目标,下面就来跟随小编一起学习一... 目录一、环境准备二、定义实体类三、创建实体类列表四、将实体类列表转换为DataFrame五、导出Da

项目二----项目的开始是人生的阶梯【哈哈】

最近由于太忙,好久都没有编写博客了,现在又接手了第二个项目,该项目是一个订单系统,主要的功能就是用于展示保单的状态和相关的保单信息以及可以进行继续投保,最重要的是还嵌套这续保功能,这项目在去年年底时已经上线运行了,由于最近续保功能还在优化和重新开发,后续会不断的对博客进行补充。 这是一个属于中间件的项目,在软件架构和设计中主要充当【表现层和逻辑层的部分】,持久层另外项目

MyBatis学习——解决字段名与实体类属性名不相同的冲突

转载地址:http://www.cnblogs.com/xdp-gacl/p/4264425.html

httprunner学习笔记(自用版)

目录 一、安装二、脚本录制1、charles录制2、F12脚本录制 三、脚本生成1、har转换为json脚本2、har转换为yml脚本 四、执行脚本五、查看报告六、httpruner接口自动化项目架构 HttpRunner 是一款面向 HTTP(S) 协议的通用测试框架,只需编写维护一份 YAML/JSON 脚本,即可实现自动化测试、性能测试、线上监控、持续集成等多种测试需求

Ext重写手法

常用的几种方式:1、Ext.apply()和Ext.applyIf()2、Ext.override()3、想做某个类大的修改,可以把该类单独从源码中拿出来,直接修改,然后引用时先应用ext-all.js,再引用从源码中拿出修改的那个类4、obj.prototype.method=function(){}

【自用14】C++俄罗斯方块-思路复盘

1.编写主函数 int main(void){welcome();//欢迎函数system("pause");//窗口停留colsegraph();//关闭图画return 0;//返回值} 其中包含有最开始的欢迎,以及基础的窗口停留、图画关闭和返回值语句 2.编写欢迎函数 需求: 欢迎函数中需要包含的功能 设置游戏窗口的大小 设置游戏窗口的颜色 设置游戏窗口需要显示的文字的字

泛型第二课,派生子类、属性类型、方法重写、泛型擦除

子类(实现类) 子类与父类|接口一样使用泛型子类指定具体的类型子类与父类|接口 同时擦除类型子类泛型,父类|接口 擦除错误:不能子类擦除,父类|接口泛型 package com.pkushutong.genericity3;/*** 父类为泛型类* 1、属性* 2、方法* * 要么同时擦除,要么子类大于等于父类的类型* 不能子类擦除,父类泛型* 1、属性类型* 父类中,随父类型定

Python中的方法重写与多态:解锁编程的无限可能

在编程的世界里,灵活性与扩展性往往是衡量一个语言是否强大、易于维护的关键指标。Python,作为一种被广泛使用的高级编程语言,不仅以其简洁易读的语法赢得了众多开发者的喜爱,更因其支持多种面向对象特性而备受青睐。其中,“方法重写”与“多态”便是两个核心概念,它们不仅能够极大地提高代码的复用性和可维护性,还能帮助我们构建更加灵活、健壮的软件系统。本文将通过一系列由浅入深的例子,带你一起探索这两个概念的