我想在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) {
...
}