问题标签 [equals]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 可以为接口引用定义 == 的行为吗?
如果接口继承了 IEquatable,则实现类可以定义 Equals 方法的行为。是否可以定义 == 操作的行为?
通过比较它们的值来检查两个 IFoo 引用是否相等:
是否可以if (X == Y)
在 Foo 上使用 Equals 方法?
java - 如何避免,那个 URL.equals 需要在 Java 中访问互联网?
equals()
Java 类库中 URL 类的方法发出 DNS 请求以获取主机名的 IP,以检查两个 IP 是否相等。即使是从相同的String
. 有没有办法避免这种互联网访问?
vb.net - 为什么是 Type.Equals(t1, t2) 而不是等式运算符?
为什么必须Type.Equals(t1, t2)
使用确定等价类型,而不是相等运算符(例如对于 VB.NET,t1 = t2
)?
它似乎与 .NET API 的其他部分不一致。
VB.NET 中的示例:
If GetType(String) = GetType(String) Then
Debug.Print("The same, of course")
End If
导致“ Operator '=' is not defined for types 'System.Type' and 'System.Type'.
”的编译时错误
c# - 如何比较相同但不受约束的泛型类型的两个元素是否相等?
我有以下泛型类,编译器抱怨“ Operator '!=' cannot be applied to operands of type 'TValue' and 'TValue'
”(参见CS0019):
如果我限制TValue
到class
,我可以使用Object.Equals()
. 由于我对结构和类都需要这个,但如果我能避免这种情况,我会很高兴。
所以问题是,我如何比较两个相同但不受约束的泛型类型的元素是否相等?
jsp - 如何在 JSP 中使用 equals() 方法?
在我的 JSP 中,我需要使用该equals()
方法测试两个对象。有没有办法使用 EL、JSTL 或其他标签库来做到这一点?由于团队规则,我不允许使用 scriptlet。
我尝试使用 JSTL<c:if>
标记,但它似乎只使用==
运算符。
java - 比较两个对象是否相等的替代方法是什么?
http://leepoint.net/notes-java/data/expressions/22compareobjects.html
事实证明,定义 equals() 并非易事。事实上,要做到这一点相当困难,尤其是在子类的情况下。Horstmann 的 Core Java Vol 1 对这些问题的最佳处理。
如果 equals() 必须始终被覆盖,那么什么是避免被迫进行对象比较的好方法?有哪些好的“设计”替代品?
编辑:
我不确定这是否符合我的预期。也许这个问题应该更像是“你为什么要比较两个对象?” 根据您对该问题的回答,是否有替代解决方案来进行比较?我不是说,equals 的不同实现。我的意思是,根本不使用平等。我认为关键是从这个问题开始,为什么要比较两个对象。
java - Findbugs 警告:Equals 方法不应假设任何关于其参数类型的内容
在我的项目上运行 FindBugs 时,我遇到了一些上述错误的实例。
也就是说,我的 equals 覆盖版本将 RHS 对象转换为与定义覆盖版本的对象相同的类型。
但是,我不确定是否有可能有更好的设计,因为 AFAIK Java 不允许方法参数发生变化,因此无法为 equals 参数定义任何其他类型。
是我做错了什么,还是 FindBugs 太急切了?
表达这个问题的另一种方式是:如果传递给 equals 的对象与 LHS 的类型不同,那么正确的行为是什么:这是错误的,还是应该有例外?
例如:
java - 在 Web 服务存根中生成等于
从我们的后端生成的所有 webservice-stubs 都有一个类似于这个的 equals 方法:
有人可以向我解释一下的目的__equalsCalc
吗?我只是不明白。它不在课堂上的其他地方使用。在我看来,在计算“平等”期间它并不完全为空。然而 equals 是声明的synchronized
。因此,在任何给定时间只能有一个线程在其中。我看不出来,为什么if (__equalsCalc != null)
应该永远是真的。
请告诉我我愚蠢的误解;-)
编辑:我是该项目的新手,因此我的回答可能是错误的。但是如果我正确地跟踪它,该方法是由axis-wsdl2java生成的
c# - InternalEquals(object objA, object objB) 的实现在哪里
在使用 Reflector 反汇编 .Net 源代码时,我发现了 Object Class 中的 Equals 实现,它指的是
这又是指
我现在很困惑在哪里可以找到这个InternalEquals(object objA, object objB)
函数的实现,它是如何使用这个函数的,这个函数是在哪个 .Net 程序集中定义的,以及如果每个东西都是从头开始为 .Net 源代码编写的,那么为什么我找不到这个函数的实现。
java - 如何确保 hashCode() 与 equals() 一致?
当覆盖 java.lang.Object 的 equals() 函数时,javadocs 建议,
每当重写该方法时,通常都需要重写 hashCode 方法,以维护 hashCode 方法的一般约定,即相等的对象必须具有相等的哈希码。
hashCode() 方法必须为每个对象返回一个唯一的整数(这在根据内存位置比较对象时很容易做到,只需返回对象的唯一整数地址)
应该如何覆盖 hashCode() 方法,以便它仅基于该对象的属性为每个对象返回一个唯一的整数?