请问能否实现多个类都能使用同一个MyComparator类来实现比较大小.
详细是这样的,我写了一个MyComparator类实现Comparator接口
public class MyComparator implements Comparator{
public int compare(Object obj1, Object obj2){
//我知道obj1 与 obj2 可能属于ClassA, ClassB,ClassC 类.
//但是A,B,C 三个类都肯定存在一个 myint 属性,我用以下方法编译不通过.
if (obj1.myint > obj2.myint ) {
return 1
}
...
}
}
问能否实现ClassA, ClassB,ClassC 都能使用同一个MyComparator类,来实现比较.
前提: ClassA, ClassB,ClassC 三个类都具体 同一个属性myint, 而且都是用这个属性来进行比较的.
------解决方案--------------------如果你要实现Comparator接口,compare这个方法的参数你是肯定不能变的。只能在方法体里做。
先做一个判断,
if((obj1 instanceof ClassA || obj1 instanceof ClassB || obj1 instanceof ClassC)
&& (obj2 instanceof ClassA || obj2 instanceof ClassB || obj2 instanceof ClassC)){
//强制类型转换
.....
// 比较操作
.....
}
------解决方案--------------------实现同一个接口,Comparator中使用这个接口进行比较