Java 相当于 Python 的 __eq__ 和 __bool__

Java equivalent of Python's __eq__ and __bool__

我想在我的 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

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

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