import java.util.*;
public class ComDemo<T> implements Comparator<T> {
   
   public int compare(T o1, T o2) {
       if(o1.eqauls(o2))
           return 0;
       return o1.compareTo(o2) * -1;
   }
}ComDemo.java:7: 找不到符号
符号: 方法 eqauls(T)
位置: 类 java.lang.Object
       if(o1.eqauls(o2))
            ^
ComDemo.java:9: 找不到符号
符号: 方法 compareTo(T)
位置: 类 java.lang.Object
       return o1.compareTo(o2) * -1;
                ^
这个o1和o2不是已经声明为T了吗   为什么还要(T)o1 才能用呢哪位用简单 直接点的语言给我讲讲 谢谢

解决方案 »

  1.   

    两个问题:1.  if(o1.eqauls(o2)) 
        应该是: if(o1.equals(o2)) 2. o1.compareTo(o2) * -1 
       这个compareTo对于object来说是不存在的。
      

  2.   

    object类中没有compareTo这个方法,Comparator接口中才有这个方法。
    ComDemo类实现了Comparator接口,它可以使用compartTo这个方法,但T没实现。
      

  3.   

    这样的话得T扩展Comparable接口才行
      

  4.   


          if( (T) o1.equals(o2)) 
              return 0; 
          return ( (Comparable<T>) o1).compareTo(o2) * -1;这样是可以编译的  这两个红色部分分别什么意思呢?