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

equals 定义不一致导致list contains错误

错误代码如下:

            for (int i=0;i< rows.size();i++) {Row r = rows.get(i);if (r.equals(row)) {assertTrue(rows.contains(row));return;}}

cassertTrue(rows.contains(row));返回了false,看起来很奇怪,此时equals 定义如下:

    public boolean equals(Row row) {if (this.className.equals(row.className)  && this.relationship.equals(row.relationship) &&this.superClassName.equals(row.superClassName)) {return true;}return false;}

debug 发现 list进行contains 判定使用的的 equals 是object 类的equals
在这里插入图片描述

将 equals 改为

@Overridepublic boolean equals(Object obj) {if (obj instanceof Row) {Row row = (Row) obj;if (this.className.equals(row.className) && this.relationship.equals(row.relationship)&& this.superClassName.equals(row.superClassName)) {return true;}}return false;}

即equals的入参应该是Object。

http://www.xdnf.cn/news/20150.html

相关文章:

  • SQL面试题及详细答案150道(81-100) --- 子查询篇
  • webrtc弱网-LossBasedBandwidthEstimation类源码分析与算法原理
  • 【Proteus仿真】定时器控制系列仿真——秒表计数/数码管显示时间
  • 【ComfyUI】混合 ControlNet 多模型组合控制生成
  • ANSYS HFSS边界条件的认识
  • 【LeetCode热题100道笔记】二叉树中的最大路径和
  • 9.FusionAccess桌面云
  • Spring的事件监听机制(一)
  • 03.缓存池
  • 【数学建模】质量消光系数在烟幕遮蔽效能建模中的核心作用
  • 故障诊断 | MATLAB基于CNN - LSSVM组合模型在故障诊断中的应用研究
  • 在Ubuntu上配置Nginx实现开机自启功能
  • 54.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--新增功能--实现手机邮箱注册
  • js面试题 什么是作用域?
  • 【Proteus仿真】定时器控制系列仿真——LED小灯闪烁/流水灯/LED灯带控制/LED小灯实现二进制
  • EG2104 SOP-8 带SD功能 内置600V功率MOS管 栅极驱动芯片
  • 智能客户服务支持智能体
  • 基于GOA与BP神经网络分类模型的特征选择方法研究(Python实现)
  • 登录优化(双JWT+Redis)
  • 开源AI智能名片链动2+1模式S2B2C商城小程序服务提升复购率和转介绍率的研究
  • 80(HTTP默认端口)和8080端口(备用HTTP端口)区别
  • phpMyAdmin文件包含漏洞复现:原理详解+环境搭建+渗透实战(vulhub CVE-2018-12613)
  • Linux 使用pip报错(error: externally-managed-environment )解决方案
  • Qt图表功能学习
  • sensitive-word 敏感词性能提升14倍优化全过程 v0.28.0
  • 【C++】memcpy导致的深拷贝问题
  • [Upscayl图像增强] docs | 前端 | Electron工具(web->app)
  • 【Python字符串格式化】:全面指南与最佳实践
  • Day22_【机器学习—集成学习(4)—Boosting—GBDT算法】
  • 基于Spring Boot的幼儿园管理系统