2016-07-22 9 views
1

ソートの日付比較が機能しません。お知らせ下さい。日付の比較に失敗しましたd1.compareTo(d2)

コード:

パブリッククラスListMapComparatorが実装コンパレータ{

@Override 
public int compare(Object obj1, Object obj2) { 
    try { 
     Map<String, String> test1 = (Map<String, String>) obj1; 
     Map<String, String> test2 = (Map<String, String>) obj2; 
     String string1 = test1.get("formattedDate"); 
     String string2 = test2.get("formattedDate"); 
     SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy"); 
     Date d1 = sdf.parse(string1); 
     Date d2 = sdf.parse(string2); 
     return d1.compareTo(d2); 
    } catch (ParseException ex) { 
     //Logger.getLogger(ListMapComparator.class.getName()).log(Level.SEVERE, null, ex); 
    } 
    return 0; 

} 

}

エラー: エラー:d1.compareTo(D2)を返す シンボルを見つけることができません。 symbol:method compareTo(Date) 場所:日付型の変数d1 注:一部の入力ファイルでは、廃止予定のAPIを使用または上書きしています。 注:詳細については、-Xlint:deprecationを使用して再コンパイルしてください。 注:一部の入力ファイルでは、未チェックまたは安全でない操作が使用されています。 注:詳細については、-Xlint:uncheckedを指定して再コンパイルしてください。

答えて

2

コードネーム1のクラスDateは比較対象外ですので、compareToを呼び出すと失敗します。しかし、最後の行を次のように変更することで、ほぼ同じことができます。

return (int)(d1.getTime() - d2.getTime()); 

逆の順序で並べ替えることができます。

関連する問題