From 1bca05da286dec0b27448b6af1eb36926bbd4385 Mon Sep 17 00:00:00 2001 From: ju Date: Mon, 5 Nov 2018 20:00:20 +0800 Subject: [PATCH] fix --- .../jackson/databind/type/ClassFactory.java | 11 +++++++++++ .../jackson/databind/type/TypeFactory.java | 18 +++++++++++++++++- 2 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/type/ClassFactory.java diff --git a/fine-jackson/src/com/fr/third/fasterxml/jackson/databind/type/ClassFactory.java b/fine-jackson/src/com/fr/third/fasterxml/jackson/databind/type/ClassFactory.java new file mode 100644 index 000000000..5daecf195 --- /dev/null +++ b/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); +} diff --git a/fine-jackson/src/com/fr/third/fasterxml/jackson/databind/type/TypeFactory.java b/fine-jackson/src/com/fr/third/fasterxml/jackson/databind/type/TypeFactory.java index 44a02d4de..98f6163d8 100644 --- a/fine-jackson/src/com/fr/third/fasterxml/jackson/databind/type/TypeFactory.java +++ b/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) */ protected final ClassLoader _classLoader; + + private ClassFactory classFactory; /* /********************************************************** /* Life-cycle /********************************************************** */ - + + + public void setClassFactory(ClassFactory classFactory) { + + this.classFactory = classFactory; + } + private TypeFactory() { _parser = new TypeParser(this); _modifiers = null; @@ -247,10 +255,18 @@ public final class TypeFactory protected Class classForName(String name, boolean initialize, ClassLoader loader) throws ClassNotFoundException { + + if (classFactory != null) { + return classFactory.classForName(name, loader); + } return Class.forName(name, true, loader); } protected Class classForName(String name) throws ClassNotFoundException { + + if (classFactory != null) { + return classFactory.classForName(name); + } return Class.forName(name); }