我正在尝试覆盖我的类的compareTo()
方法,以便根据日期对实例进行排序。
当我运行此程序时,我得到的结果不正确。 我正在用Javascript编写,因为我在Rhino环境中工作。我不确定它是否有帮助,但我使用execute-rhino-online在线编辑器编写代码:
var arrayList = java.util.ArrayList();
var Object1 = new java.util.HashMap();
var Object2 = new java.util.HashMap();
var Object3 = new java.util.HashMap();
Object1.put("Job Number", "222");
Object1.put("Date", java.util.Date(2017, 10, 11));
Object2.put("Job Number", "333");
Object2.put("Date", java.util.Date(2017, 10, 13));
Object3.put("Job Number", "111");
Object3.put("Date", java.util.Date(2017, 10, 10));
arrayList.add(Object1);
arrayList.add(Object2);
arrayList.add(Object3);
var comp = java.util.Comparator({
compareTo: function(o1, o2) {
var d1 = o1.get("Date");
print(d1);
var d2 = o2.get("Date");
if (d1.before(d2)) {
return -1;
} else if (d1.after(d2)) {
return 1;
} else {
return 0;
}
}
});
java.util.Collections.sort(arrayList, comp);
print(arrayList);
答案 0 :(得分:1)
这是因为你要覆盖一个不存在的方法
将compareTo:
更改为compare:
检查https://docs.oracle.com/javase/7/docs/api/java/util/Comparator.html
的javadoc