2016-06-15 9 views
0

通常のプロパティを持つオブジェクトのリストとカスタムフィールド値のハッシュマップがあり、そのマップのカスタムフィールドの値に基づいてソートする方法を見つけようとしています。BeanComparatorを使ってマップされたプロパティでソートする

例クラス:

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:不明なプロパティ「たCustomField」+ Beanクラスの結果に

は、ここで私はそれをやろうとしている方法ですがマッピングされたプロパティが私に与えてでもしよう:

ComparatorChain chain = new ComparatorChain(); 
chain.addComparator(new BeanComparator("customField(field99)")); 

Collections.sort(results, chain); 

TIA

答えて

0

私はそれを見つけました。問題は、GetterがObject not Stringを返す必要があることです。

関連する問題