我有一个问题来实现我所做的排序我创建了一个类
@Override
public int compare(Object object1, Object object2) {
try {
Method method = object1.getClass().getDeclaredMethod("getStampDate");
Date value = (Date) method.invoke(object1);
Method method1 = object1.getClass().getDeclaredMethod("getStampDate");
Date value1 = (Date) method.invoke(object2);
//Date stamepDate1 = fetchStampDate(object1 );
//Date stamepDate2 = fetchStampDate(object2);
if(value != null && value1 != null )
return compare(value, value1);
}
但是当我打电话时
public void columnsList(List<TableRecord> records){
Collections.sort(records, new StampDateComparator());
}
比较器只调用一次我所期望的,TableRecord
包含一个日期变量,这种排序方法将根据日期进行排序,但是比较器只调用一次我做错了什么?
对于测试,我在列表中添加了两条记录
List<TableRecord> records = new ArrayList<TableRecord>();
records.add(new MyClass());
records.add(new MyClass1());
但这只调用了一次