呼呼哈哈自用--实体类重写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

相关文章

XMG 重写- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event方法

//重写这个方法,来完成一些指定的事件。比如说按钮被遮到下面了,但是我想让点击到这块区域的时候让按钮去相应点击 - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {     // 当前坐标系上的点转换到按钮上的点     CGPoint btnP = [self convertPoint:point toVi

【转载】 symfony 生成实体类命令

原作者地址:https://www.it603.com/article/88.html 参考文章: https://symfony.com/doc/current/doctrine/reverse_engineering.html How to Generate Entities from an Existing Database https://www.jianshu.com/p/75fc

MySQL命名规范(自用)

MtySQL命名规范 基本通用规范 1.【推荐】关键字必须大写 所有关键字必须大写,如:INSERT、UPDATE、DELETE、SELECT及其子句,IF……ELSE、CASE、DECLARE等 2.【强制】字段和建表必须写备注 COMMENT写备注 3.【强制】字母数字下划线 采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线’‘组成,命名简

SpringSecurity-重写默认配置

重写UserDetailService组件 1.注入Bean的方式 /*** @author: coffee* @date: 2024/6/22 21:22* @description: 重写springsecurity默认组件:注入Bean的方式*/@Configurationpublic class ProjectConfig {/*** 重写userDetailsService组件

String的== 与equals详解

先来看一个面试题 结果是 false;true;false "=="来比较它们所引用的是否是同一个对象时 string 比较是否同一个对象,用== string比较字符串字面量相等用equals string 字面量创建的会写入到常量池,独立的 string new出来的会进堆,独立的 final的值在编译是就确定了 所以 此时 a+b 对编译器来说就是“ab” 没有fi

【计算机网络】[第六章:应用层][自用]

1 概述 (1)回顾: (2)应用层应用举例: (3)应用层大纲: 2 C/S方式和P2P方式 (1) (2)C/S: (3)P2P: 3 动态主机配置协议DHCP (1) (2)举例说明:         DHCP报文在运输层会被封装到UDP用户数据报中。DHCP服务器进程使用端口67,DHCP用户进程使用端口68。         DHCP服务器会始终运行着DHCP服务

java重载重写和类初始化详解

文章目录 1 重载1.1 重载和重写注意点1.2 重载概念1.3 重载问题1.3.1 重载中null和有形参1.3.2 重载中string和stringbuffer1.3.3 重载中无参和不定长参数 2 重写2.1 重写概念2.2 重写问题2.2.1 属性,静态属性,静态方法不能被重写2.2.2 子类为什么不能继承父类静态2.2.3 子类重写父类注意事项2.2.4 子类继承父类时问题 3

Java中finalize,hashcode和toString

文章目录 1 Finalize1.1 finalize方法作用1.2 怎么使用finalize1.3 finalize异常和问题1.4 finalize执行过程(生命周期) 2 hashCode2.1 hashcode做什么用2.2 在类中覆盖equals的时候,为什么要同时覆盖hashCode2.3 hashCode一般规则2.4 如果覆盖了equals却不覆盖hashCode的后果2.5

Android 代码规范(自用)

命名规范和排版 java成员类 基础类型优先排在上方java相关类排在基础类型下方android相关类排在java相关类下方整体排序按照访问权限:private->default->protected->public 由低到高排序以上的模块间以一个空行隔开所有成员类命名均以小写m开头,采用驼峰命名静态成员变量放在以上模块最上方封装的bean类成员变量不需要以小写字母m开头,采用驼峰命名即可

C++重载重写重定义的区别及多态的概念

1.重载和重写的区别: 重载overload:在同一个类中,函数名相同,参数列表不同,编译器会根据这些函数的不同参数列表,将同名的函数名称做修饰,从而生成一些不同名称的预处理函数,未体现多态。   重写override:也叫覆盖,子类重新定义父类中有相同名称相同参数的虚函数,主要是在继承关系中出现的,被重写的函数必须是virtual的,重写函数的访问修饰符可以不同,尽管virtual是pri