【原文地址】
https://blog.csdn.net/qq_36170500/article/details/107250282
- 简化不必要的代码逻辑
- 纯原生环境亦可运行
import java.lang.reflect.Field;
import java.lang.reflect.Method;
/**
* @author zhoudeshui v1.1
* @Desc 版权声明:本文为CSDN博主「一个人的编程」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
* 原文链接:<a href="https://blog.csdn.net/qq_36170500/article/details/107250282">...</a>
*/
public class BeanTrimUtil {
// 整个类的所有string类型字段去空值,trim() 去空
public static Object removeSpaces(Object object) {
Class<?> clazz = object.getClass();
//获取到所有的属性值
Field[] fields = clazz.getDeclaredFields();
Method setMethod = null;
Method getMethod = null;
Object obj1 = null;
for (Field field : fields) {
//判断属性是否为字符类型
if ("class java.lang.String".equals(field.getGenericType().toString())) {
try {
//获取到当前字段名称,并首字母大写
String itemName = titleCase(field.getName());
//根据属性名获取到方法名,再根据方法名获取到方法
getMethod = clazz.getMethod("get" + itemName);
setMethod = clazz.getMethod("set" + itemName, String.class);
//执行获取到的方法,并传入参数,获取到当前字段对应的属性值
String val = (String) getMethod.invoke(object);// 调用getter方法获取属性值
//执行set类型方法,为当前字段赋值为.trim()后的新值 替换其中空字符
obj1 = setMethod.invoke(object, val.trim());
// obj1 = setMethod.invoke(object, val.trim().replace(" ", ""));
} catch (Exception e) {
e.printStackTrace();
}
}
}
return object;
}
public static void removeSpacesVoid(Object object) {
Class<?> clazz = object.getClass();
//获取到所有的属性值
Field[] fields = clazz.getDeclaredFields();
Method setMethod = null;
Method getMethod = null;
for (Field field : fields) {
//判断属性是否为字符类型
if ("class java.lang.String".equals(field.getGenericType().toString())) {
try {
//获取到当前字段名称,并首字母大写
String itemName = titleCase(field.getName());
//根据属性名获取到方法名,再根据方法名获取到方法
getMethod = clazz.getMethod("get" + itemName);
setMethod = clazz.getMethod("set" + itemName, String.class);
//执行获取到的方法,并传入参数,获取到当前字段对应的属性值
String val = (String) getMethod.invoke(object);// 调用getter方法获取属性值
//执行set类型方法,为当前字段赋值为.trim()后的新值 替换其中空字符
setMethod.invoke(object, val.trim());
// setMethod.invoke(object, val.trim().replace(" ", ""));
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
//首字母大写
public static String titleCase(String s) {
char[] c = s.toCharArray();
if ((c[0] >= 'a') && (c[0] <= 'z')) {
c[0] -= 32;
}
return new String(c);
}
使用示例
removeSpacesVoid() 无需接参