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 beanToBeanCopyOptionsTest() {
		final ChildVo1 childVo1 = new ChildVo1();
		childVo1.setChild_address("中国北京五道口");
		childVo1.setChild_name("张三");
		childVo1.setChild_father_name("张无忌");
		childVo1.setChild_mother_name("赵敏敏");

		final CopyOptions copyOptions = CopyOptions.create().
			//setIgnoreNullValue(true).
			//setIgnoreCase(false).
				setFieldNameEditor(StrUtil::toCamelCase);

		final ChildVo2 childVo2 = new ChildVo2();
		BeanUtil.copyProperties(childVo1, childVo2, copyOptions);

		assertEquals(childVo1.getChild_address(), childVo2.getChildAddress());
		assertEquals(childVo1.getChild_name(), childVo2.getChildName());
		assertEquals(childVo1.getChild_father_name(), childVo2.getChildFatherName());
		assertEquals(childVo1.getChild_mother_name(), childVo2.getChildMotherName());
	}