public int compareTo(TaskVO o) {
if(o == null){
throw new NullPointerException("Can't compare to a null objcet.");
}
if(sort == null || sort.length == 0){
return 0;
}
BeanInfo beanInfo = null;
try {
beanInfo = Introspector.getBeanInfo(TaskVO.class); // 获取类属性
PropertyDescriptor[] props = beanInfo.getPropertyDescriptors();
for(int i=0;i<sort.length;i++){
int flag = 1;
if(sort[i].toUpperCase().endsWith("DESC")){
flag = -1;
}
for (PropertyDescriptor prop : props) {
if(sort[i].toLowerCase().startsWith(prop.getName().toLowerCase())){
Method rd =prop.getReadMethod();
Object a = rd.invoke(this, null);
Object b = rd.invoke(o, null);
if(a instanceof Comparable<?>){
int r = ((Comparable) a).compareTo(b) * flag;
if(r != 0){
return r;
}
}
}
}
}
} catch (Exception e) {
}
return 0;
}
使用Collections的sort方法 要重写compareTo方法
这是程序中的一个例子,写在VO中,可以继承,使用Collections.sort(XXX)