Вместо переопределения compareTo()
попробуйте создать класс с именем Comparator
, который создает компаратор (эксперт, который определяет, какой объект имеет более высокий приоритет), передавая реализацию ICompare.
public interface ICompare{
compare(image obj1, image obj2);
}
Класс Comperator:
public class Comperator{
ICompare icompare;
Comperator(ICompare icompare){
this.icompare = icompare;
}
public int compare(image img1, image img2){
return icompare.compare(img1,img2);
}
}
В заключение, создайте столько объектов Comperator, сколько вы хотите, передавая реализованный интерфейс, который вы хотите.Затем используйте его для сравнения объектов типа image.
Я хотел бы сказать вам здесь, что вы можете использовать Generics здесь, но я не просто потому, что хотел сохранить его простым и понятным!