public static <T> T trimStrFields(T bean, String... ignoreFields) {
		return edit(bean, (field) -> {
			if (ignoreFields != null && ArrayUtil.containsIgnoreCase(ignoreFields, field.getName())) {
				// 不处理忽略的Fields
				return field;
			}
			if (String.class.equals(field.getType())) {
				// 只有String的Field才处理
				final String val = (String) ReflectUtil.getFieldValue(bean, field);
				if (null != val) {
					final String trimVal = StrUtil.trim(val);
					if (false == val.equals(trimVal)) {
						// Field Value不为null，且首尾有空格才处理
						ReflectUtil.setFieldValue(bean, field, trimVal);
					}
				}
			}
			return field;
		});
	}
@Test
	public void trimBeanStrFieldsTest() {
		final Person person = new Person();
		person.setAge(1);
		person.setName("  张三 ");
		person.setOpenid(null);
		final Person person2 = BeanUtil.trimStrFields(person);

		// 是否改变原对象
		assertEquals("张三", person.getName());
		assertEquals("张三", person2.getName());
	}