Ich habe eine Liste von Objekten mit normalen Eigenschaften und eine Hash-Map von benutzerdefinierten Feldwerten und ich versuche, eine Möglichkeit zum Sortieren basierend auf den Wert eines benutzerdefinierten Felds in dieser Karte zu finden.Verwenden von BeanComparator zum Sortieren mit zugeordneten Eigenschaften
Beispiel Klasse:
class Result {
int id;
String name;
Date date;
Map customFields;
int getId() {
return id;
}
etc....
String getCustomField(String fieldId) {
return customFields.get(fieldId);
}
public void setCustomField(String fieldId, Object value) {
customFields.put(fieldId, value);
}
}
eine BeanComparator mit "normalen" Eigenschaften mit Hilfe der Liste fein sortiert. Aber mit einer zugeordneten Eigenschaft versucht, gibt mir:
java.lang.RuntimeException: NoSuchMethodException: java.lang.NoSuchMethodException: Unbekannte Eigenschaft ‚Custom‘ + auf Bean-Klasse Ergebnis
Hier ist, wie ich versuche, es zu tun :
ComparatorChain chain = new ComparatorChain();
chain.addComparator(new BeanComparator("customField(field99)"));
Collections.sort(results, chain);
Irgendwelche Ideen?
TIA