【问题标题】:Java equivalent of Python's __eq__ and __bool__Java 等效于 Python 的 __eq__ 和 __bool__
【发布时间】:2020-05-21 02:43:59
【问题描述】:

我想在我的 Java 实例上快速执行等效和布尔测试。我如何在 Java 中执行相当于 Python3 代码的操作? (请注意,没有对任何属性的引用 - 只是实例本身)

test.py

class Number:
    def __init__(self,n):
        self.n = n
    def __eq__(self, num):
        return self.n == num
    def __bool__(self):
        return True

def main():
    t = Number(10)
    if t == 10:
        print("Equivalency")
    if t:
        print("Boolean")

if __name__ == "__main__":
    main()

输出

$ python3 test.py
Equivalency
Boolean

【问题讨论】:

  • Java 没有运算符重载。

标签: java python equivalent


【解决方案1】:

您不能覆盖==,也不能实现__bool__ 等效项。但是,您绝对应该覆盖equals()(也可能是hashCode())。 everything 将使用此 equals 方法来比较对象是否相等。唯一使用== 的情况是,如果您想查看两个变量是否指向内存中的同一个对象。

@Override
public boolean equals(Object other) {
    ...
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-29
    • 2023-03-26
    • 2016-08-04
    • 1970-01-01
    • 2019-01-31
    • 2011-09-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多