public static <T, S> T copy(S source, T target, String... ignore) {
        return copy(source, target, DEFAULT_CONVERT, ignore);
    }
@Test
    @SneakyThrows
    public void testCrossClassLoader() {
        URL clazz = new File("target/test-classes").getAbsoluteFile().toURI().toURL();

        System.out.println(clazz);
        URLClassLoader loader = new URLClassLoader(new URL[]{
                clazz
        }, ClassUtils.getDefaultClassLoader()){
            @Override
            protected Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException {
                try {
                    Class<?> clazz = loadSelfClass(name);
                    if (null != clazz) {
                        if (resolve) {
                            resolveClass(clazz);
                        }
                        return clazz;
                    }
                } catch (Throwable ignore) {

                }
                return super.loadClass(name, resolve);
            }

            @SneakyThrows
            public synchronized Class<?> loadSelfClass(String name) {
                Class<?> clazz = super.findLoadedClass(name);
                if (clazz == null) {
                    clazz = super.findClass(name);
                    resolveClass(clazz);
                }
                return clazz;
            }

            @Override
            public Enumeration<URL> getResources(String name) throws IOException {
                return findResources(name);
            }

            @Override
            public URL getResource(String name) {
                return findResource(name);
            }
        };
        Class<?> sourceClass = loader.loadClass(Source.class.getName());
        Assert.assertNotSame(sourceClass, Source.class);

        Object source = sourceClass.newInstance();
        FastBeanCopier.copy(Collections.singletonMap("name","测试"),source);

        Map<String,Object> map = FastBeanCopier.copy(source,new HashMap<>());
        System.out.println(map);

        loader.close();
        map = FastBeanCopier.copy(source,new HashMap<>());

        System.out.println(map);

    }