我这边工作中有个需求要求String类型的字段入库是去掉空格,我想到了两种方式处理
1.第一种是在实体类中的set方法中处理,这种方法我就不说了
2.第二种是通过反射处理对象的属性,废话不多说放上代码
public static Object stringTrim(Object model) {
if(model==null){
return model;
}
try {
Object newObject=new Object();
newObject=model;
Class cls = newObject.getClass();
//获取所有属性
Field[] declaredFields = cls.getDeclaredFields();
for (int i = 0; i < declaredFields.length; i++) {
Field declaredField = declaredFields[i];
//打开私有属性操作权限
declaredField.setAccessible(true);
//获取属性名称
String name = declaredField.getName();
//获取属性的类型
Class<?> type = declaredField.getType();
//获取类型的名称
String simpleName = type.getSimpleName();
//如果是String类型则去空格
if (("String").equals(simpleName)) {
//获取该属性的值
String str = (String) declaredField.get(newObject);
str = str == null ? str : str.replace(" ","");
//去空格后重新赋值
declaredField.set(newObject, str);
}
}
return newObject;
} catch (Exception e) {
log.error("stringTrim error,Exception:{}",e);
return model;
}
}