Java等效于Python的__eq__和__bool __

问题描述 投票:1回答:1

我想在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 python equivalent
1个回答
0
投票

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

@Override
public boolean equals(Object other) {
    ...
}
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.