首页 > 代码库 > jFinal生成动态条件的工具类中需要用到的几个方法
jFinal生成动态条件的工具类中需要用到的几个方法
其实Model和Record本质也是属于map的,但是有些情况下还是需要将Model或者Record中的属性和值转换成一个Map键值对,因为在buildCondition的时候需要传字段和值,为了共用一个方法并且统一起来就将Model和Record全转换成一个map传给buildCondition,并且其他地方也有需要这样的转换,例如如果直接将一个Model传给前台页面貌似获取不到Model的属性的需要自己处理转换下!因此就写了这么两个方法。
1、将Model转换成Map
/** * 将Model类转换为Map modelToMap * * @param 参数说明 * @return 返回对象 * @Exception 异常对象 */ public static Map<String, Object> modelToMap(Model<?> model) { Map<String, Object> map = new HashMap<String, Object>(); String[] names = model.getAttrNames(); for (String str : names) { map.put(str, model.get(str)); } return map; }
2、将Record转换成Map
/** * 将Record转换成Map recordToMap * * @param 参数说明 * @return 返回对象 * @Exception 异常对象 */ public static Map<String, Object> recordToMap(Record record) { Map<String, Object> map = new HashMap<String, Object>(); if (record != null) { String[] columns = record.getColumnNames(); for (String col : columns) { map.put(col, record.get(col)); } } return map; }
3、判断对象是否为空
/** * 判断对象或对象数组中每一个对象是否为空: 对象为null,字符序列长度为0,集合类、Map为empty * * @param obj * @return */ @SuppressWarnings("unchecked") public static boolean isNullOrEmpty(Object obj) { if (obj == null) { return true; } else if (obj instanceof String && (obj.equals(""))) { return true; } else if (obj instanceof Short && ((Short) obj).shortValue() == 0) { return true; } else if (obj instanceof Integer && ((Integer) obj).intValue() == 0) { return true; } else if (obj instanceof Double && ((Double) obj).doubleValue() == 0) { return true; } else if (obj instanceof Float && ((Float) obj).floatValue() == 0) { return true; } else if (obj instanceof Long && ((Long) obj).longValue() == 0) { return true; } else if (obj instanceof Boolean && !((Boolean) obj)) { return true; } else if (obj instanceof Collection && ((Collection) obj).isEmpty()) { return true; } else if (obj instanceof Map && ((Map) obj).isEmpty()) { return true; } else if (obj instanceof Object[] && ((Object[]) obj).length == 0) { return true; } return false; }
jFinal生成动态条件的工具类中需要用到的几个方法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。