public static <T> T fillBean(T bean, ValueProvider<String> valueProvider, CopyOptions copyOptions) {
		if (null == valueProvider) {
			return bean;
		}

		return BeanCopier.create(valueProvider, bean, copyOptions).copy();
	}
@Test
	public void fillBeanTest() {
		final Person person = BeanUtil.fillBean(new Person(), new ValueProvider<String>() {

			@Override
			public Object value(final String key, final Type valueType) {
				switch (key) {
					case "name":
						return "张三";
					case "age":
						return 18;
				}
				return null;
			}

			@Override
			public boolean containsKey(final String key) {
				// 总是存在key
				return true;
			}

		}, CopyOptions.create());

		assertEquals("张三", person.getName());
		assertEquals(18, person.getAge());
	}