【发布时间】:2016-06-15 13:56:42
【问题描述】:
我有一个具有正常属性的对象列表和一个自定义字段值的哈希图,我正在尝试找到一种方法来根据该地图中自定义字段的值进行排序。
示例类:
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);
}
}
使用具有“正常”属性的 BeanComparator 列表可以很好地排序。但是尝试使用映射属性会给我:
java.lang.RuntimeException: NoSuchMethodException: java.lang.NoSuchMethodException: bean 类结果上的未知属性 'customField'+
这是我的尝试:
ComparatorChain chain = new ComparatorChain();
chain.addComparator(new BeanComparator("customField(field99)"));
Collections.sort(results, chain);
有什么想法吗?
TIA
【问题讨论】:
标签: java comparator apache-commons-beanutils