package com.base.utils; public class StringUtil { /** *判断字符串是否为空。是:则返回true;否则返回false */ public static boolean isNull(String str){ if(str.equals(null) || "".equals(str) || str == null){ return true; } return false; } /** *判断字符串是否为空 */ public static String isNullThenNewString(String src, String dest){ if(isNull(src)){ return dest; }else{ return src; } } /** * 将String[]转换为形如"…,…,…,…"的字符串,用来在删除时使用 * @return */ public static String arrayToString(String[] fid) { String serperater = ","; return arrayToString(fid, serperater); } /** * 用指定的分隔符来将一个字符串数组组合成一个字符串 */ public static String arrayToString(String[] fids, String serperater) { String strfids = ""; for (int i = 0; i < fids.length; i++) { // 将所有选择的记录删除 if (i == 0){ strfids = fids[0]; } else{ strfids += serperater + fids[i]; } } return strfids; } /** * 用指定的分隔符来将一个字符串切割成为数组 */ public static String[] stringToArray(String fids, String serperater) { if(isNull(serperater)){ serperater = ","; } if(fids.endsWith(serperater)){ fids = fids.substring(0, fids.length()-1); } return fids.split(serperater); } }
package com.base.utils; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.math.BigDecimal; import java.sql.Timestamp; import java.util.Date; import com.base.constant.DataTypes; import com.base.exception.DefaultException; import com.base.po.BasePO; import com.base.vo.BaseVO; public class BeanUtils { /** *得到对象Object的所有属性组成的字符串 *@param Object *@return String */ public static String getAllFieldsName(Object object) throws DefaultException{ Field[] fields = object.getClass().getDeclaredFields(); StringBuffer selectedFields = new StringBuffer(""); if(object==null){ try { object=object.getClass().newInstance(); } catch (InstantiationException e) { System.out.println("加载类的实例出错!"); throw new DefaultException("加载类的实例出错!"); } catch (IllegalAccessException e) { System.out.println("非法访问类的私有属性!"); throw new DefaultException("非法访问类的私有属性!"); } } for(int i=0;i<fields.length;i++){ selectedFields.append(fields[i].getName()+","); } return (selectedFields.toString()).substring(0, selectedFields.toString().lastIndexOf(",")); } /** * 将srcObject(基本数据类型的数据对象)以type类型输出(形成sql语句的value值形式) */ public static Object getField(Object srcObject, String type)throws DefaultException{ if(DataTypes.STRING.equals(type)){ if(srcObject==null){ srcObject = new String(""); } return "\""+srcObject.toString()+"\""; }else{ return changeToType(srcObject, type); } } /** * 将srcObject(基本数据类型的数据对象)以type类型输出 */ public static Object changeToType(Object srcObject, String type) throws DefaultException{ try{ if(DataTypes.STRING.equals(type)){//String if(srcObject==null){ srcObject = new String(""); } return srcObject.toString(); }else if(DataTypes.CHAR.equals(type)){//char if(srcObject==null){ srcObject = new Character('0'); } return ((Character) srcObject); }else if(DataTypes.CHARACTER.equals(type)){//char if(srcObject==null){ srcObject = new Character('0'); } return ((Character) srcObject); }else if(DataTypes.SHORT.equals(type)){//short if(srcObject==null){ srcObject = new Short("0"); } return Short.valueOf(srcObject.toString()); }else if(DataTypes.SHORT_.equals(type)){//Short if(srcObject==null){ srcObject = new Short("0"); } return Short.valueOf(srcObject.toString()); }else if(DataTypes.INT.equals(type)){//int if(srcObject==null){ srcObject = new Integer(0); } return Integer.valueOf(srcObject.toString()); }else if(DataTypes.INTEGER.equals(type)){//Integer if(srcObject==null){ srcObject = new Integer(0); } return Integer.getInteger(srcObject.toString()); }else if(DataTypes.LONG.equals(type)){//long if(srcObject==null){ srcObject = new Long(0); } return Long.valueOf(srcObject.toString()); }else if(DataTypes.LONG_.equals(type)){//Long if(srcObject==null){ srcObject = new Long(0); } return Long.valueOf(srcObject.toString()); }else if(DataTypes.FLOAT.equals(type)){//float if(srcObject==null){ srcObject = new Float(0); } return Float.valueOf(srcObject.toString()); }else if(DataTypes.FLOAT_.equals(type)){//Float if(srcObject==null){ srcObject = new Float(0); } return Float.valueOf(srcObject.toString()); }else if(DataTypes.DOUBLE.equals(type)){//double if(srcObject==null){ srcObject = new Double(0); } return Double.valueOf(srcObject.toString()); }else if(DataTypes.DOUBLE_.equals(type)){//Double if(srcObject==null){ srcObject = new Double(0); } return Double.valueOf(srcObject.toString()); }else if(DataTypes.BIGDECIMAL.equals(type)){//BigDecimal if(srcObject==null){ srcObject = new BigDecimal("0"); } return new BigDecimal(srcObject.toString()); }else if(DataTypes.DATE.equals(type)){//Date if(srcObject==null){ srcObject = new Date(); } return new Date(srcObject.toString()); }else if(DataTypes.TIMESTMAP.equals(type)){//Timstamp if(srcObject==null){ srcObject = new Timestamp(0); } return Timestamp.valueOf(srcObject.toString()); }else if(DataTypes.BOOLEAN.equals(type)){//boolean if(srcObject==null){ srcObject = new Boolean(false); } return Boolean.valueOf(srcObject.toString()); }else if(DataTypes.BOOLEAN_.equals(type)){//Boolean if(srcObject==null){ srcObject = new Boolean(false); } return Boolean.valueOf(srcObject.toString()); }else if(DataTypes.BYTE.equals(type)){//byte if(srcObject==null){ srcObject = new Byte("0"); } return Byte.valueOf(srcObject.toString()); }else if(DataTypes.BYTE_.equals(type)){//Byte if(srcObject==null){ srcObject = new Byte("0"); } return Byte.valueOf(srcObject.toString()); } }catch(ClassCastException e){ e.printStackTrace(); throw new DefaultException("(数据类型转换出错)"); } return srcObject; } /** * 首字母大写 */ public static String toUpFirstLetter(String str){ return str.substring(0, 1).toUpperCase()+str.substring(1, str.length()); } /** * 首字母小写 */ public static String toLowerFirstLetter(String str){ return str.substring(0, 1).toUpperCase()+str.substring(1, str.length()); } /** * 找出object对象的指定方法,params为false表示get方法,为true表示set方法 * @param Object,String,params * @return Method * @throws DefaultException */ public static Method getMethodByName(Object object, String methodName, boolean params) throws DefaultException{ if(!params){//get方法 try { return object.getClass().getDeclaredMethod(methodName, null); } catch (SecurityException e) { e.printStackTrace(); throw new DefaultException("该方法不存在或者该方法为私有的,不可访问!"); } catch (NoSuchMethodException e) { e.printStackTrace(); throw new DefaultException("该方法不存在或者该方法为私有的,不可访问!"); } } Method[] methods = object.getClass().getDeclaredMethods(); for(int i=0;i<methods.length;i++){ if(methodName.equals(methods[i].getName())){ return methods[i]; } } //如果该对象中不包含该方法,报异常 throw new DefaultException("该方法不存在!"); } /** * VO与PO命名规约:1.取名时之存在VO与PO不同其他相同 * 2.包路径只有vo与po不同 */ public static String getVONameByPOName(String POName){ return POName.substring(0, POName.length()-2)+"VO"; } /** * PO与VO命名规约:取名时之存在VO与PO不同其他相同 */ public static String getPONameByVOName(String VOName){ return VOName.substring(0, VOName.length()-2)+"PO"; } /** *根据VO对象,得到与他名称相似的PO对象(XXVO,XXPO) * @throws DefaultException */ public static Object getPoByVoUseName(BaseVO objVO) throws DefaultException{ String poname = BeanUtils.getPONameByVOName(objVO.getClass().getName()); poname = poname.replaceAll("vo", "po"); System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>POName:"+poname); return getObjectByName(poname); } /** *根据PO对象,得到与他名称相似的VO对象(XXVO,XXPO) * @throws DefaultException */ public static Object getVoByPoUseName(BasePO objPO) throws DefaultException{ String voname = BeanUtils.getVONameByPOName(objPO.getClass().getName()); voname = voname.replaceAll("po", "vo"); System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>voname:"+voname); return getObjectByName(voname); } /** *根据对象的名称,得到对象实例 */ public static Object getObjectByName(String className)throws DefaultException{ Object obj = null; try { obj = Class.forName(className).newInstance(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } System.out.println(obj.toString()); return obj; } /** * 根据属性名称,获取属性的类型 */ public static String getPropertyType(Class cla, String pro)throws DefaultException{ Method[] methods = cla.getDeclaredMethods(); for(int i=0;i<methods.length;i++){ if(("get"+BeanUtils.toUpFirstLetter(pro)).equals(methods[i].getName())){ return methods[i].getReturnType().getName(); } } throw new DefaultException("找不到该方法"); } /** * 根据方法名,获取方法对应的属性名(get方法) */ public static String getPropertyByMethodName(String methodName) throws DefaultException{ if(methodName.indexOf("get")!=-1){ return BeanUtils.toLowerFirstLetter(methodName.replaceFirst("get", "")); } throw new DefaultException("该方法不是get方法!"); } /** * 根据属性名,获取(get方法) */ public static Method getGetMethodByPropertyName(Object object, String propertyName) throws DefaultException{ return getMethodByName(object, "get"+toUpFirstLetter(propertyName),false); } /** * 根据属性名,获取(set方法) */ public static Method getSetMethodByPropertyName(Object object, String propertyName) throws DefaultException{ return getMethodByName(object, "set"+toUpFirstLetter(propertyName),true); } }