public static <T> T copyProperties(Object source, Class<T> tClass, String... ignoreProperties) {
		if (null == source) {
			return null;
		}
		T target = ReflectUtil.newInstanceIfPossible(tClass);
		copyProperties(source, target, CopyOptions.create().setIgnoreProperties(ignoreProperties));
		return target;
	}
@Test
	public void copyPropertiesIgnoreNullTest() {
		final SubPerson p1 = new SubPerson();
		p1.setSlow(true);
		p1.setName(null);

		final SubPerson2 p2 = new SubPerson2();
		p2.setName("oldName");

		// null值不覆盖目标属性
		BeanUtil.copyProperties(p1, p2, CopyOptions.create().ignoreNullValue());
		assertEquals("oldName", p2.getName());

		// null覆盖目标属性
		BeanUtil.copyProperties(p1, p2);
		assertNull(p2.getName());
	}