日期:2014-05-19  浏览次数:20645 次

模仿sql查询,设计。
sql中经常用到排序 例如: select * from emp order by filed1 asc , filed2 asc , filed3 desc ;

现在有一个类 Entity 它有 三个属性 int filed1 , int filed2 , int filed3 .

如果给一个 Entity[] entitys 集合给你 , 

然后按照指定的顺序进行排序 ,
 比如 : 
filed1 升序 filed2 降序 filed3 升序
或者
filed1 降序

或则

filed3 升序 filed2 降序

你要怎么实现? 还有 ,当Entity属性越来越多时 又要怎么做? 要通用一点。

------解决方案--------------------
我的感觉是做一个排序类,里面放若干排序参数,你要几个排序参数,就取几个参数排,用这种1,2,3命名的反而容易让人晕.
------解决方案--------------------
闲来无事帮你写的一个

简单的annotation来表明升序还是降序
Java code
import java.lang.annotation.*;

@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Sort {
    String order() default "ASC";
}