枚举compareTo()方法实现

ben*_*enz 0 java

我有一个例子,我对输出感到困惑.

 enum Seasons {
    WINTER,
    SUMMER,
    SPRING,
    AUTUMN;
}
public class SeasonTest{
    public static void main(String[] args) {
    Seasons season1 = Seasons.WINTER;
    Seasons season2 = Seasons.SUMMER;
    Seasons season3 = Seasons.SPRING;
    Seasons season4 = Seasons.AUTUMN;
    System.out.println(season1.compareTo(season2));
    System.out.println(season3.compareTo(season4));
    System.out.println(season4.compareTo(season3));
    System.out.println(season2.compareTo(season1));
    System.out.println(season3.compareTo(season3));
    System.out.println(season1.compareTo(season4));
}
}
Run Code Online (Sandbox Code Playgroud)

最后一行返回-3.这是为什么?它应该返回-1,因为season1小于season4.为什么它会返回-3?

谢谢.

SLa*_*aks 7

compareTo() 允许返回任何正数或负数,或者为零.

它无需专门返回+/- 1.