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 才能用呢哪位用简单 直接点的语言给我讲讲 谢谢
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 才能用呢哪位用简单 直接点的语言给我讲讲 谢谢
应该是: if(o1.equals(o2)) 2. o1.compareTo(o2) * -1
这个compareTo对于object来说是不存在的。
ComDemo类实现了Comparator接口,它可以使用compartTo这个方法,但T没实现。
if( (T) o1.equals(o2))
return 0;
return ( (Comparable<T>) o1).compareTo(o2) * -1;这样是可以编译的 这两个红色部分分别什么意思呢?