不好的做法 - 类定义 compareTo(...) 并使用 Object.equals()

2024-05-09Java开发问题
1

本文介绍了不好的做法 - 类定义 compareTo(...) 并使用 Object.equals()的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

想知道列出的方法需要做什么

Wondering what needs to be done for listed method

 public final int compareTo(final FieldDTO o) {
        return o.available.compareTo(this.available);

它在第 2 行抛出异常说明不好的做法 - 类定义 compareTo(...) 并使用 Object.equals() 16 天
field 定义 compareTo(FieldDTO) 并使用 Object.equals()

its throwing exception on line 2 stating Bad practice - Class defines compareTo(...) and uses Object.equals() 16 days
field defines compareTo(FieldDTO) and uses Object.equals()

不知道我应该如何处理.提前致谢.

Not sure how should i handle this. Thanks in advance.

推荐答案

如果你定义 compareTo 你至少应该定义 equals

If you define compareTo you should at least define equals

boolean equals(it) { 
  return compareTo(it) == 0; 
} 

否则当你把你的对象放在 Maps 和 Sets 时你会遇到奇怪的问题.通常也定义 hashCode 是一种好习惯.

otherwise you will get strange problems when you put your object in Maps and Sets. It is generally good practice to also define hashCode.

这篇关于不好的做法 - 类定义 compareTo(...) 并使用 Object.equals()的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

The End

相关推荐

如何使用 JAVA 向 COM PORT 发送数据?
How to send data to COM PORT using JAVA?(如何使用 JAVA 向 COM PORT 发送数据?)...
2024-08-25 Java开发问题
21

如何使报表页面方向更改为“rtl"?
How to make a report page direction to change to quot;rtlquot;?(如何使报表页面方向更改为“rtl?)...
2024-08-25 Java开发问题
19

在 Eclipse 项目中使用西里尔文 .properties 文件
Use cyrillic .properties file in eclipse project(在 Eclipse 项目中使用西里尔文 .properties 文件)...
2024-08-25 Java开发问题
18

有没有办法在 Java 中检测 RTL 语言?
Is there any way to detect an RTL language in Java?(有没有办法在 Java 中检测 RTL 语言?)...
2024-08-25 Java开发问题
11

如何在 Java 中从 DB 加载资源包消息?
How to load resource bundle messages from DB in Java?(如何在 Java 中从 DB 加载资源包消息?)...
2024-08-25 Java开发问题
13

如何更改 Java 中的默认语言环境设置以使其保持一致?
How do I change the default locale settings in Java to make them consistent?(如何更改 Java 中的默认语言环境设置以使其保持一致?)...
2024-08-25 Java开发问题
13