gpt4 book ai didi

java - Java API 中的 "equals"这个词是什么意思?

转载 作者:行者123 更新时间:2023-12-01 18:35:58 24 4
gpt4 key购买 nike

我不确定是否有人会知道这个问题的答案,除非您负责编写 Jave API,但是当 Java API 说“等于”时,它是否总是意味着 a.equals(b)计算结果为true ,或者有时这意味着 a == btrue ?我最近扩展了一个类,想知道是否需要根据它的使用位置来重写一个方法 ==.equals 。具体来说,我扩展了 javafx.beans.binding.ObjectExpression并对 .isEqualTo(Object other) 感到好奇方法。我检查了来源( here ),发现此方法使用 .equals进行比较。我很好奇当我读到诸如

之类的内容时我是否可以有信心

"Creates a new BooleanExpression that holds true if this ObjectExpression is equal to a constant value."

该方法未使用 ==运算符(operator)。虽然,据我所知,API 不可能意味着 .equals要么,因为(例如)

String constant = "constant";
ObjectExpress<String> stringExpression = new MyStringExpression("constant");

constant.equals(stringExpression)

将始终评估为 false。所以也许我的问题应该是“当 API 说‘等于’时,它是否总是指应用 .equal 的最合理方式,或者有时它指的是应用 == 的类似方式?”

编辑

我认为根据我应该澄清的答案:这不是关于 == 之间差异的问题。和.equal 。 Java API 使用英文单词“equals”时所指的就是它。

最佳答案

很明显,您确实理解 equals() 和 == 之间的区别。所以你的问题相当哲学:)

通常,许多 API 在 equals() 的含义中使用“等于”,在 == 的含义中使用“等于”。例如。 JUnit 有断言方法 assertEquals()assertSame()

但是,请运用您的常识并分析文档的语言。请注意 API 中引用的句子中不定冠词的用法:

"Creates a new BooleanExpression that holds true if this ObjectExpression is equal to a constant value."

a常量值”明确表示任何常量值,与“常量”不同的值> 值(value)。因此很明显,这不能与constant.equals(stringExpression) 含义相同。

因此,请这样理解:当文档说“等于”时,请认为它与变量的内容相关,而不是与其引用相关。但请使用常识并阅读整个句子:)

它能回答你的问题吗? :P

关于java - Java API 中的 "equals"这个词是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22008890/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com