importjava.lang.reflect.Field;importjava.lang.reflect.Method;public classTest {/*** 去掉bean中所有属性为字符串的前后空格
*
*@parambean
*@throwsException*/
public static void beanAttributeValueTrim(Object bean) throwsException {if (bean != null) {//获取所有的字段包括public,private,protected,private
Field[] fields =bean.getClass().getDeclaredFields();for (int i = 0; i < fields.length; i++) {
Field f=fields[i];if (f.getType().getName().equals("java.lang.String")) {
String key=f.getName();//获取字段名
Object value =getFieldValue(bean, key);if (value == null)continue;
setFieldValue(bean, key, value.toString().trim());
}
}
}
}/*** 利用反射通过get方法获取bean中字段fieldName的值
*
*@parambean
*@paramfieldName
*@return*@throwsException*/
private staticObject getFieldValue(Object bean, String fieldName)throwsException {
StringBuffer result= newStringBuffer();
String methodName= result.append("get")
.append(fieldName.substring(0, 1).toUpperCase())
.append(fieldName.substring(1)).toString();
Object rObject= null;
Method method= null;
@SuppressWarnings("rawtypes")
Class[] classArr= new Class[0];
method=bean.getClass().getMethod(methodName, classArr);
rObject= method.invoke(bean, new Object[0]);returnrObject;
}/*** 利用发射调用bean.set方法将value设置到字段
*
*@parambean
*@paramfieldName
*@paramvalue
*@throwsException*/
private static voidsetFieldValue(Object bean, String fieldName, Object value)throwsException {
StringBuffer result= newStringBuffer();
String methodName= result.append("set")
.append(fieldName.substring(0, 1).toUpperCase())
.append(fieldName.substring(1)).toString();//利用反射调用bean.set方法将value设置到字段
@SuppressWarnings("rawtypes")
Class[] classArr= new Class[1];
classArr[0] = "java.lang.String".getClass();
Method method=bean.getClass().getMethod(methodName, classArr);
method.invoke(bean, value);
}
}