mirror of
https://github.com/chillzhuang/blade-tool
synced 2025-03-13 09:07:23 +08:00
✨ Bean copy 解决 java17 反射问题
This commit is contained in:
parent
0510f27902
commit
47579f5137
@ -57,20 +57,12 @@ public abstract class BaseBeanCopier {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static BaseBeanCopier create(Class source, Class target, boolean useConverter) {
|
public static BaseBeanCopier create(Class source, Class target, boolean useConverter) {
|
||||||
return BaseBeanCopier.create(source, target, null, useConverter);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static BaseBeanCopier create(Class source, Class target, ClassLoader classLoader, boolean useConverter) {
|
|
||||||
Object key = KEY_FACTORY.newInstance(source.getName(), target.getName(), useConverter);
|
Object key = KEY_FACTORY.newInstance(source.getName(), target.getName(), useConverter);
|
||||||
Generator gen;
|
Generator gen = new Generator(key);
|
||||||
if (classLoader == null) {
|
|
||||||
gen = new Generator(key);
|
|
||||||
} else {
|
|
||||||
gen = new Generator(key, classLoader);
|
|
||||||
}
|
|
||||||
gen.setSource(source);
|
gen.setSource(source);
|
||||||
gen.setTarget(target);
|
gen.setTarget(target);
|
||||||
gen.setUseConverter(useConverter);
|
gen.setUseConverter(useConverter);
|
||||||
|
gen.setUseCache(true);
|
||||||
return gen.create();
|
return gen.create();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -85,7 +77,6 @@ public abstract class BaseBeanCopier {
|
|||||||
public static class Generator extends AbstractClassGenerator {
|
public static class Generator extends AbstractClassGenerator {
|
||||||
private static final Source SOURCE = new Source(BEAN_NAME_PREFIX);
|
private static final Source SOURCE = new Source(BEAN_NAME_PREFIX);
|
||||||
private final Object key;
|
private final Object key;
|
||||||
private final ClassLoader classLoader;
|
|
||||||
private Class source;
|
private Class source;
|
||||||
private Class target;
|
private Class target;
|
||||||
private boolean useConverter;
|
private boolean useConverter;
|
||||||
@ -94,13 +85,6 @@ public abstract class BaseBeanCopier {
|
|||||||
Generator(Object key) {
|
Generator(Object key) {
|
||||||
super(SOURCE);
|
super(SOURCE);
|
||||||
this.key = key;
|
this.key = key;
|
||||||
this.classLoader = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
Generator(Object key, ClassLoader classLoader) {
|
|
||||||
super(SOURCE);
|
|
||||||
this.key = key;
|
|
||||||
this.classLoader = classLoader;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setSource(Class source) {
|
public void setSource(Class source) {
|
||||||
@ -123,6 +107,7 @@ public abstract class BaseBeanCopier {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected ClassLoader getDefaultClassLoader() {
|
protected ClassLoader getDefaultClassLoader() {
|
||||||
|
// L.cm 保证 和 返回使用同一个 ClassLoader
|
||||||
return target.getClassLoader();
|
return target.getClassLoader();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user