diff --git a/springboot-plugin-framework/src/main/java/com/gitee/starblues/factory/process/post/bean/PluginInvokePostProcessor.java b/springboot-plugin-framework/src/main/java/com/gitee/starblues/factory/process/post/bean/PluginInvokePostProcessor.java index 2afd5594d5a1a2f375cb7ff9efbb1a4a733f1cc6..9a11caa7ae89c6f97f62a76e823883a1833f7474 100644 --- a/springboot-plugin-framework/src/main/java/com/gitee/starblues/factory/process/post/bean/PluginInvokePostProcessor.java +++ b/springboot-plugin-framework/src/main/java/com/gitee/starblues/factory/process/post/bean/PluginInvokePostProcessor.java @@ -288,11 +288,11 @@ public class PluginInvokePostProcessor implements PluginPostProcessor { return null; } Class returnType = method.getReturnType(); - if(returnType == invokeReturn.getClass()){ + if(ClassUtils.isAssignable(invokeReturn.getClass(),returnType)){ return invokeReturn; } else { String json = OBJECT_MAPPER.writeValueAsString(invokeReturn); - return OBJECT_MAPPER.readValue(json, returnType); + return OBJECT_MAPPER.readValue(json, OBJECT_MAPPER.getTypeFactory().constructType(method.getGenericReturnType()) ); } }