Java class 可比较不起作用

Java class comparable does not work

我在 Android 应用程序中使用了 class,声明如下:

public static class MyData implements Comparable<MyData>
{
   public MyEnum myEnum;

   @Override
   public int compareTo(MyData another)
   {
       if(this.myEnum.equals(MyEnum.Value1)) 
        {  
           return 1;
        }
       if(another.myEnum.equals(MyEnum.Value1)) 
        {
            return -1;
        }
       if(this.myEnum.equals(MyEnum.Value2)) 
       { 
            return 1;
       }
       if(another.myEnum.equals(MyEnum.Value2)) 
       {
          return -1;
       }
       return 0;
   }
}

我定义了一个列表:List<MyData> myList = new LinkedList<MyData>();

将项目添加到列表后,我调用:Collections.sort(myList)

问题是,当我调试时,我看到 compareTo 方法在调用 sort 方法之后被调用,但是它没有进入第一个,即使它应该进入。我什至将 Eclipse 中的布尔表达式放在 "Expressions" 视图中,它返回 true,但代码只是跳转到 return 0; 并且列表没有按照我想要的方式排序。

这是为什么?

最终我将该枚举 class 成员更改为一个 int 成员,该成员使用枚举中的序号值进行了初始化。

然后compareTo方法改成这样:

   @Override
   public int compareTo(MyData another)
   {
      Integer myVal = this.intVal;
      Integer otherVal = another.intVal;
      return myVal.compareTo(otherVal);
   }