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

我在以下行中有语法错误。 但是我无法理解这个错误的原因是什么。

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

当且仅当compareTo返回1我想要实现的是打印正确的消息。

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

 address1.compareTo(address2) == 1 

你可以比较:

 1 == address1.compareTo(address2) 

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

在您的情况下,最好比较:

 address1.compareTo(address2) > 0 

在此处输入图像描述