
如何在Java中覆盖equals方法
我试图覆盖Java中的equals方法。我有一堂课People,基本上有2个数据字段name和age。现在,我想重写equals方法,以便可以在2个People对象之间进行检查。我的代码如下public boolean equals(People other){ boolean result; if((other == null) || (getClass() != other.getClass())){ result = false; } // end if else...
2024-01-10
.Equals返回意外的结果
请参阅下面的代码:.Equals返回意外的结果public class ValueType<T> where T : class,new() { public virtual bool Equals(T other) { if (other == null) return false; Type t = GetType(); Type otherType = other.GetType(); if (t != othe...
2024-01-10
在java中==和equals的区别?
在java中==和equals的区别?回答:.equals(…) 只会比较所写的内容进行比较,不会多也不会少。如果一个类没有覆盖equals方法,则默认为equals(Object o)覆盖了该方法的最接近的父类的方法。如果没有父类提供重写,则它默认为最终父类Object中的方法,因此你只能使用该Object#equals(Object o)方法。根据对象API...
2024-01-10
覆盖Java equals()方法-不起作用?
equals()今天,我遇到了一个有趣(非常令人沮丧)的方法问题,该问题导致我认为是一个经过良好测试的类崩溃了,并导致了一个错误,使我花了很长时间来追踪。为了完整起见,我没有使用IDE或调试器-只是老式的文本编辑器和System.out。时间非常有限,这是一个学校项目。无论如何-我开发一个基本...
2024-01-10
是否存在C#不区分大小写的equals运算符?
我知道以下是区分大小写的:if (StringA == StringB) {那么,是否有一个运算符将以不敏感的方式比较两个字符串?回答:尝试这个:string.Equals(a, b, StringComparison.CurrentCultureIgnoreCase);...
2024-01-10
比较Java枚举成员:==或equals()?
我知道Java枚举被编译为具有私有构造函数和一堆公共静态成员的类。比较给定枚举的两个成员时,我一直使用.equals(),例如public useEnums(SomeEnum a){ if(a.equals(SomeEnum.SOME_ENUM_VALUE)) { ... } ...}但是,我刚遇到一些使用equals运算符==而不是.equals()的代码:public useEnums2(SomeEnum a){ if(a == ...
2024-01-10
覆盖equals方法以比较Java中的多个字段
在Java中重写equals方法以比较多个字段的最佳方法是什么?例如,我在类中有4个对象,分别为o1,o2,o3,o4,我想将所有这些对象与传递给equals方法的对象进行比较。if (o1 != null && o2 != null && o3 != null && o4 != null && obj.o1 != null && obj.o2 != null && obj.o3 != null && obj.o4 != null && o1.equals(obj.o1) && o2.equal...
2024-01-10
如何确保hashCode()与equals()一致?
当覆盖java.lang.Object的equals()函数时,javadocs建议,通常,无论何时重写此方法,都必须重写hashCode方法,以维护hashCode方法的常规约定,该约定规定相等的对象必须具有相等的哈希码。hashCode()方法必须为每个对象返回一个 (当根据内存位置比较对象时,这很容易做到,只需返回对象的 地址即...
2024-01-10
Java 用.equals()和==运算符比较两个对象
我建立了一个String领域的课程。然后,我创建了两个对象,我也必须使用==运算符对其进行比较.equals()。这是我所做的:public class MyClass { String a; public MyClass(String ab) { a = ab; } public boolean equals(Object object2) { if(a == object2) { return true; } ...
2024-01-10
C#.Equals()、. ReferenceEquals()和==运算符
我对这三个方面的理解是:.Equals()测试数据是否相等(缺少更好的描述)。.Equals()可以为同一对象的不同实例返回True,这是最常用的方法。.ReferenceEquals() 测试两个对象是否是同一实例,并且不能被覆盖。==与ReferenceEquals()默认情况下的相同,但是可以覆盖此设置。但是C#站指出:在对象类中...
2024-01-10
