首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

compare 施用实例

2012-08-25 
compare 应用实例整理2个compare 接口排序的实现方法:??一、 自己实现比较方法,包括一些复杂的多条件比较??

compare 应用实例

整理2个compare 接口排序的实现方法:

?

?

一、 自己实现比较方法,包括一些复杂的多条件比较

?

public class RmComparator {/** * 比较器,可以根据VO具体字段比较 *  * @param mothdName * @return */public Comparator getComparator(final String mothdName) {return new Comparator() {public int compare(Object o1, Object o2) {int val = 0;//默认不排序try {if (mothdName == null) {val = myCompare(o1, o2);} else {val = myCompare(getValue(o1, mothdName), getValue(o2, mothdName));}} catch (Exception ex) {ex.printStackTrace();}return val;}// VO中取值public Object getValue(Object bean, String methodName) throws Exception {Method getMethod = bean.getClass().getMethod(methodName, null);return getMethod.invoke(bean, null);}// 具体执行比较的方法public int myCompare(Object obj1, Object obj2) throws Exception {if (obj1 == null || obj2 == null){return obj1 == null ? -1 : 1;}Class cl = obj1.getClass();if (obj1 instanceof java.lang.Comparable) {// byte int long float..number, date , boolean , char,StringMethod getMethod = obj1.getClass().getMethod("compareTo", new Class[] { cl });return (Integer) getMethod.invoke(obj1, new Object[] { obj2 });}return 0;//默认不排序}};}
?

?

?

?

热点排行