package cn.ksource.core.util; import org.apache.commons.lang.StringEscapeUtils; import org.apache.commons.lang.StringUtils; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.lang.reflect.Modifier; import java.math.BigDecimal; import java.net.URLEncoder; import java.util.*; public class ConvertUtil { public static Boolean obj2Boolean(Object obj){ return obj == null ? false : Boolean.getBoolean(obj.toString()); } public static Double obj2Double(Object obj){ if (obj == null) { return null; } return StringUtil.isBlank(obj2Str(obj)) ? null : Double.valueOf(obj.toString()); } public static void main(String[] args) { String str = "0.123"; System.out.println(obj2Double(str)); } /** * List转Map * @param dataList * @param key * @return * 作者:杨凯 */ public static Map list2Map(List dataList,Object key){ Map resultMap = new HashMap(); if (dataList != null && dataList.size() > 0) { for (Map map : dataList) { if (map.get(key) != null) { resultMap.put(map.get(key), map); } } } return resultMap; } /** * List转Map * @param dataList * @param key * @param value * @return * 作者:杨凯 */ public static Map list2Map(List dataList,Object key,Object value){ Map resultMap = new LinkedHashMap(); if (dataList != null && dataList.size() > 0) { for (Map map : dataList) { resultMap.put(map.get(key), map.get(value)); } } return resultMap; } /** * 如果为空,使用提供的值替换 * @param obj * @param o * @return * 作者:杨凯 */ public static Object defaultIfEmpty(Object obj,Object o){ return obj == null || StringUtils.isBlank(obj.toString()) || StringUtils.equalsIgnoreCase(obj.toString(), "null") ? o : obj; } /**將GBK转化为GBK * @param str * @return * 作者:杨凯 */ public static String gbk2UTF8(String str){ if (StringUtils.isBlank(str)) { return str; } try { str = URLEncoder.encode(str, "UTF-8"); } catch (Exception e) { e.printStackTrace(); } return str; } public static String html2Text(String html){ return html.replaceAll("<[^>]+>", "").replaceAll(" ",""); } /** * 功能描述:Object类转换为String,避免在Object为null时,直接toString()出错
* @param obj * @return * @author:杨凯
* 时间:Mar 22, 2009 10:17:29 PM
*/ public static String obj2Str(Object obj) { return obj == null ? null : obj.toString(); } public static String obj2StrBlank(Object obj) { return obj == null ? "" : obj.toString(); } public static Integer obj2Integer(Object obj){ return obj == null || obj.toString().trim().equals("") ? null : Integer.parseInt(obj.toString()); } public static int obj2Int(Object obj){ return obj == null || obj.toString().trim().equals("") ? 0 : Double.valueOf(obj.toString()).intValue(); } public static Long obj2Long(Object obj){ return obj == null || obj.toString().trim().equals("") ? null : Long.parseLong(obj.toString()); } public static Long obj2Long(Object obj,boolean filter){ if (!filter) { return obj == null || obj.toString().trim().equals("") ? null : Long.parseLong(obj.toString()); } else { return obj == null || obj.toString().trim().equals("") ? null : Long.parseLong(obj.toString().replaceAll("[^0-9]", "")); } } /** * 功能描述:过滤用户输入的html、sql、javascript脚本
* @param map * @return * @author:杨凯
* 时间:Mar 23, 2009 3:41:12 PM
*/ public static Map filter(Map map) { Map resultMap = new HashMap(); for (Map.Entry entry : map.entrySet()) { String value = StringEscapeUtils.escapeHtml(ConvertUtil.obj2Str(entry.getValue())); value = StringEscapeUtils.escapeSql(value); value = StringEscapeUtils.escapeJavaScript(value); resultMap.put(entry.getKey(), value); } return resultMap; } public static Map beanToMap(Object model) { Map resultMap = new HashMap(); if (model == null) return null; List fieldList = new ArrayList(); Class class1 = (Class) model.getClass(); Class upClasses = class1.getSuperclass(); //添加父类属性 fieldList.addAll(Arrays.asList(upClasses.getDeclaredFields())); //添加类属性 fieldList.addAll(Arrays.asList(class1.getDeclaredFields())); for (Field field : fieldList) { String fieldName = field.getName(); Object fieldValue=null; try { Method method = class1.getMethod( "get" + Character.toUpperCase(fieldName.charAt(0)) + fieldName.substring(1), model.getClass()); fieldValue = method.invoke(class1, null); } catch (Exception e) { try { if (!Modifier.isPublic(field.getModifiers())) { field.setAccessible(true); } fieldValue = field.get(model); } catch (Exception exception) { } } if (fieldValue != null) { if (fieldValue instanceof String) { String fieldValueString = String.valueOf(fieldValue); if (StringUtils.isNotBlank(fieldValueString)) { resultMap.put(fieldName, fieldValueString.trim()); // 处理查询参数 } } else if(fieldValue instanceof Long ||fieldValue instanceof Integer){ resultMap.put(fieldName, fieldValue); //getConditionMap(fieldValue);// 处理查询参数TODO } } } return resultMap; } /** * 将byte转化为K或M,大于1024K的按M计算,返回*K或*M * @param byteSize * @param scale 保留小数位数 * @return */ public static String byte2KM(double byteSize, int scale) { BigDecimal b1 = new BigDecimal(byteSize); BigDecimal b2 = new BigDecimal(1024); double k = b1.divide(b2, scale, BigDecimal.ROUND_HALF_UP).doubleValue(); //大于1024,转化为M if (k > 1024) { b2 = new BigDecimal(1024*1024); k = b1.divide(b2, scale, BigDecimal.ROUND_HALF_UP).doubleValue(); return k + "M"; } return k + "K"; } }