最近在使用ibatis开源项目,因使用了spring的注解机制,在做数据库查询的时候,返回的list类型为PaginationQueryList类,然后因为对这个list会做一些手工增加数据的操作,所以需要再次排序依次,而使用Collections里的静态排序方法sort时,抛出NullPointerException情况。
通过查看源码发现:
Collections的sort代码如下:
Object[] a = list.toArray();
Arrays.sort(a, (Comparator)c);
ListIterator i = list.listIterator();
for (int j=0; j<a.length; j++) {
i.next();
i.set(a[j]);
}
而PaginationQueryList的源码中:
public Object[] toArray() {
return null;
}
因为返回为null,所以导致sort方法里的list.toArray()返回为空,所以无法进行排序,而PaginationQueryList类里封装了一个List的成员变量,所以进行排序需要注意下。