为什么我使用 =(单个等于)的相等比较在 Java 中不能正常工作?

Why doesn't my equality comparison using = (a single equals) work correctly in Java?

下一行有语法错误。但是我不明白这个错误的原因是什么。

if (address1.compareTo(address2) = 1)
        System.out.println(address1 + " is greater than " + address2);

我想要实现的是当且仅当 compareTo returns 1.

时打印正确的消息

您应该比较 (==) 而不是赋值 (=)。这可能非常危险!为避免这种情况,您可以使用 Yoda notation 而不是比较

address1.compareTo(address2) == 1

你可以比较:

1 == address1.compareTo(address2)

如果缺少=,会出现比较错误

你的情况,比较一下比较好:

address1.compareTo(address2) > 0