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