今天有遇到一个需求,就是在导入前,对对象中所有String类型属性值首尾空格做处理,这里使用了反射的方式实现,代码如下:
/**
* 去掉当前对象中String类型属性值首尾空格
* @param item
* @throws IllegalAccessException
*/
public static void whitespaceHandle(Object item) throws IllegalAccessException {
// 获取当前实例对象所有属性,返回值是一个数组
Field[] fields = item.getClass().getDeclaredFields();
// 遍历属性数组
for (Field field : fields) {
// 将private权限的属性设置为可访问的
field.setAccessible(true);
// 获取被遍历属性在实例对象中对应的值
Object o = field.get(item);
if (Objects.equals(o, null)) {
continue;
}
// 获取当前属性的类型
Class<?> type = field.getType();
if (type.isAssignableFrom(String.class)) {
field.set(item,o.toString().trim());
}
}
}