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
	@Disabled
	public void multiThreadTest() {
		final Student student = new Student();
		student.setName("张三");
		student.setAge(123);
		student.setNo(3158L);

		final Student student2 = new Student();
		student.setName("李四");
		student.setAge(125);
		student.setNo(8848L);

		final List<Student> studentList = ListUtil.of(student, student2);

		for (int i = 0; i < 5000; i++) {
			new Thread(() -> {
				final List<Student> list = ObjectUtil.clone(studentList);
				final List<Student> listReps = list.stream().map(s1 -> {
					final Student s2 = new Student();
					BeanUtil.copyProperties(s1, s2);
					return s2;
				}).collect(Collectors.toList());

				System.out.println(listReps);
			}).start();
		}

		ThreadUtil.waitForDie();
	}