ConvertFactory优化
This commit is contained in:
@@ -665,6 +665,15 @@ public abstract class ConvertFactory<R extends Reader, W extends Writer> {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
Encodeable encoder = null;
|
Encodeable encoder = null;
|
||||||
|
try {
|
||||||
|
Field instanceField = enClazz.getField("instance");
|
||||||
|
if (instanceField.getType() == enClazz && Modifier.isStatic(instanceField.getModifiers())) {
|
||||||
|
RedkaleClassLoader.putReflectionField("instance", instanceField);
|
||||||
|
encoder = (Encodeable) instanceField.get(null);
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
}
|
||||||
|
if (encoder == null) {
|
||||||
Creator<? extends Encodeable> creator = Creator.create(enClazz);
|
Creator<? extends Encodeable> creator = Creator.create(enClazz);
|
||||||
Class[] paramTypes = creator.paramTypes();
|
Class[] paramTypes = creator.paramTypes();
|
||||||
if (paramTypes.length == 0) {
|
if (paramTypes.length == 0) {
|
||||||
@@ -689,6 +698,7 @@ public abstract class ConvertFactory<R extends Reader, W extends Writer> {
|
|||||||
throw new ConvertException(enClazz + " not found public empty-parameter Constructor");
|
throw new ConvertException(enClazz + " not found public empty-parameter Constructor");
|
||||||
}
|
}
|
||||||
RedkaleClassLoader.putReflectionPublicConstructors(enClazz, enClazz.getName());
|
RedkaleClassLoader.putReflectionPublicConstructors(enClazz, enClazz.getName());
|
||||||
|
}
|
||||||
if (encoderList == null) {
|
if (encoderList == null) {
|
||||||
encoderList = new ArrayList<>();
|
encoderList = new ArrayList<>();
|
||||||
}
|
}
|
||||||
@@ -716,6 +726,15 @@ public abstract class ConvertFactory<R extends Reader, W extends Writer> {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
Decodeable decoder = null;
|
Decodeable decoder = null;
|
||||||
|
try {
|
||||||
|
Field instanceField = deClazz.getField("instance");
|
||||||
|
if (instanceField.getType() == deClazz && Modifier.isStatic(instanceField.getModifiers())) {
|
||||||
|
RedkaleClassLoader.putReflectionField("instance", instanceField);
|
||||||
|
decoder = (Decodeable) instanceField.get(null);
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
}
|
||||||
|
if (decoder == null) {
|
||||||
Creator<? extends Decodeable> creator = Creator.create(deClazz);
|
Creator<? extends Decodeable> creator = Creator.create(deClazz);
|
||||||
Class[] paramTypes = creator.paramTypes();
|
Class[] paramTypes = creator.paramTypes();
|
||||||
if (paramTypes.length == 0) {
|
if (paramTypes.length == 0) {
|
||||||
@@ -740,6 +759,7 @@ public abstract class ConvertFactory<R extends Reader, W extends Writer> {
|
|||||||
throw new ConvertException(deClazz + " not found public empty-parameter Constructor");
|
throw new ConvertException(deClazz + " not found public empty-parameter Constructor");
|
||||||
}
|
}
|
||||||
RedkaleClassLoader.putReflectionPublicConstructors(deClazz, deClazz.getName());
|
RedkaleClassLoader.putReflectionPublicConstructors(deClazz, deClazz.getName());
|
||||||
|
}
|
||||||
if (decoderList == null) {
|
if (decoderList == null) {
|
||||||
decoderList = new ArrayList<>();
|
decoderList = new ArrayList<>();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user