/** * 根据属性名获取属性值 * @param fieldName 属性名 * @param o 传入对象 * @return */ private Object getFieldValueByName(String fieldName, Object o) { try { String firstLetter = fieldName.substring(0, 1).toUpperCase(); String getter = "get" + firstLetter + fieldName.substring(1); Method method = o.getClass().getMethod(getter, new Class[] {}); Class c= method.getReturnType(); if(!String.class.isAssignableFrom(c)){ return null; } Object value = method.invoke(o, new Object[] {}); return value; } catch (Exception e) { e.printStackTrace(); logger.error(e.getMessage(), e); return null; } } /** * 获取防止注入新的对象 * @param o 传入对象 * @return */ public Object getRightParameterObject(Object o){ try{ String[] strs=getFiledName(o);//属性名数组 for(String s:strs){ Object obj=getFieldValueByName(s, o);//属性值 if(obj == null){ continue; } String firstLetter = s.substring(0, 1).toUpperCase(); String getter = "set" + firstLetter + s.substring(1); System.out.println(getter); Method method = o.getClass().getMethod(getter, String.class); method.invoke(o,StringUtil.getWhereNewValue(obj.toString()));//这个地方对属性值进行操作,对属性值过滤什么的 //} } } catch(Exception e){ logger.error(e.getMessage(), e); return null; }finally { } return o; } /** * 获取对象的所有属性值,返回一个对象数组 * @param o 传入对象 */ private Object[] getFiledValues(Object o) { String[] fieldNames = this.getFiledName(o); Object[] value = new Object[fieldNames.length]; for (int i = 0; i < fieldNames.length; i++) { value[i] = this.getFieldValueByName(fieldNames[i], o); } return value; } /** * 获取属性名数组 * @param o 传入对象 */ private String[] getFiledName(Object o) { Field[] fields = o.getClass().getDeclaredFields(); String[] fieldNames = new String[fields.length]; for (int i = 0; i < fields.length; i++) { //System.out.println(fields[i].getType()); fieldNames[i] = fields[i].getName(); } return fieldNames; }