我只是不确定如何解决这个问题。这是我收到的错误消息:
Exception in thread "main" java.lang.NullPointerException
at java.util.Date.getMillisOf(Date.java:939)
at java.util.Date.compareTo(Date.java:959)
at FirstOccComparator.compare(FirstOccComparator.java:11)
at FirstOccComparator.compare(FirstOccComparator.java:1)
at java.util.Arrays.mergeSort(Arrays.java:1270)
at java.util.Arrays.mergeSort(Arrays.java:1281)
at java.util.Arrays.mergeSort(Arrays.java:1281)
at java.util.Arrays.mergeSort(Arrays.java:1281)
at java.util.Arrays.mergeSort(Arrays.java:1281)
at java.util.Arrays.mergeSort(Arrays.java:1281)
at java.util.Arrays.mergeSort(Arrays.java:1281)
at java.util.Arrays.mergeSort(Arrays.java:1281)
at java.util.Arrays.mergeSort(Arrays.java:1281)
at java.util.Arrays.sort(Arrays.java:1210)
at Planner.sort(Planner.java:62)
at Test.main(Test.java:81)
测试@第 81 行:
p.sort( new FirstOccComparator() );
其中 p 是我制作的规划师课程。
Planner.sort @ 第 62 行:
public void sort(Comparator<AbstractEvent> c) {
Arrays.sort(schedule, c);
}
这是我的 FirstOccComparator 类: http://pastebin.com/4FZv4nXf (发布在 pastebin 上,因为它太宽并且在这里很难格式化)。在此类中 hasMoreOccurrences() 如果有更多的事件重复发生,则返回 true/false。nextOccurrence() 返回下一次出现的日期。
我很确定我在这里缺少的东西非常简单,我在接口和比较器类方面还是新手。
谢谢您的帮助!