diff --git a/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/config/FunctionContextUtils.java b/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/config/FunctionContextUtils.java index 7d4836dcb..9a0acd3e2 100644 --- a/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/config/FunctionContextUtils.java +++ b/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/config/FunctionContextUtils.java @@ -77,10 +77,10 @@ public abstract class FunctionContextUtils { } else { Type t = definition.getResolvableType().getType(); - if (t instanceof ParameterizedType) { - return t; + if (!(t instanceof ParameterizedType) && definition.hasBeanClass()) { + return FunctionTypeUtils.discoverFunctionTypeFromClass(definition.getBeanClass()); } - return FunctionTypeUtils.discoverFunctionTypeFromClass(definition.getBeanClass()); + return param; } }