Browse Source

Merge pull request #144 in CORE/base-third from ~JU/base-third:feature/10.0 to feature/10.0

* commit 'e3fc7111e348c62cd46e451b0f547de389055d5e':
  fix
research/11.0
ju 6 years ago
parent
commit
8d77973cc3
  1. 11
      fine-jackson/src/com/fr/third/fasterxml/jackson/databind/type/ClassFactory.java
  2. 18
      fine-jackson/src/com/fr/third/fasterxml/jackson/databind/type/TypeFactory.java

11
fine-jackson/src/com/fr/third/fasterxml/jackson/databind/type/ClassFactory.java

@ -0,0 +1,11 @@
package com.fr.third.fasterxml.jackson.databind.type;
/**
* Created by juhaoyu on 2018/11/5.
*/
public interface ClassFactory {
Class<?> classForName(String className);
Class<?> classForName(String className, ClassLoader classLoader);
}

18
fine-jackson/src/com/fr/third/fasterxml/jackson/databind/type/TypeFactory.java

@ -103,13 +103,21 @@ public final class TypeFactory
* ClassLoader used by this factory (Issue #624) * ClassLoader used by this factory (Issue #624)
*/ */
protected final ClassLoader _classLoader; protected final ClassLoader _classLoader;
private ClassFactory classFactory;
/* /*
/********************************************************** /**********************************************************
/* Life-cycle /* Life-cycle
/********************************************************** /**********************************************************
*/ */
public void setClassFactory(ClassFactory classFactory) {
this.classFactory = classFactory;
}
private TypeFactory() { private TypeFactory() {
_parser = new TypeParser(this); _parser = new TypeParser(this);
_modifiers = null; _modifiers = null;
@ -247,10 +255,18 @@ public final class TypeFactory
protected Class<?> classForName(String name, boolean initialize, protected Class<?> classForName(String name, boolean initialize,
ClassLoader loader) throws ClassNotFoundException { ClassLoader loader) throws ClassNotFoundException {
if (classFactory != null) {
return classFactory.classForName(name, loader);
}
return Class.forName(name, true, loader); return Class.forName(name, true, loader);
} }
protected Class<?> classForName(String name) throws ClassNotFoundException { protected Class<?> classForName(String name) throws ClassNotFoundException {
if (classFactory != null) {
return classFactory.classForName(name);
}
return Class.forName(name); return Class.forName(name);
} }

Loading…
Cancel
Save