G
Guest
Gast
Hey,
ich bin gerade dabei einen generischen Comparator zu basteln, den ich in meiner gesamten Anwendung verwenden möchte. Nun stellt sich das Problem, dass natürlich je nach Ergebnisliste unterschiedliche Objekttypen zum Vergleich vorliegen. Hier mal ein kurzer Auszug:
Derzeit wird ein Obekt der Klasse Testobjekt übergeben und je nach "sortColumnName" wird entsprechend sortiert. Nach dem "Umbau" soll jedes beliebige Objekt abgehandelt werden können. Die Variable "sortColumnName" soll dann per Reflection die getter-Methode (in diesem Fall getModuleNumber()) ersetzen. Leider weiß ich nicht so recht wie ich das automatische Casten direkt zu Beginn umsetzen soll.
ich bin gerade dabei einen generischen Comparator zu basteln, den ich in meiner gesamten Anwendung verwenden möchte. Nun stellt sich das Problem, dass natürlich je nach Ergebnisliste unterschiedliche Objekttypen zum Vergleich vorliegen. Hier mal ein kurzer Auszug:
Code:
Comparator comparator = new Comparator()
{
public int compare(Object o1, Object o2) {
Testobjekt c1 = (Testobjekt) o1;
Testobjekt c2 = (Testobjekt) o2;
if (sortColumnName == null) {
return 0;
}
if (sortColumnName.equals("acb")) {
return ascending ?
Integer.valueOf(c1.getModuleNumber()).compareTo(Integer.valueOf(c2.getModuleNumber())) :
Integer.valueOf(c2.getModuleNumber()).compareTo(Integer.valueOf(c1.getModuleNumber()));
} else return 0;
}
};
Derzeit wird ein Obekt der Klasse Testobjekt übergeben und je nach "sortColumnName" wird entsprechend sortiert. Nach dem "Umbau" soll jedes beliebige Objekt abgehandelt werden können. Die Variable "sortColumnName" soll dann per Reflection die getter-Methode (in diesem Fall getModuleNumber()) ersetzen. Leider weiß ich nicht so recht wie ich das automatische Casten direkt zu Beginn umsetzen soll.