GH-1251 Additional regression fixes with type discovery

Tthis change specifically addresses the use of generics
This commit is contained in:
Oleg Zhurakousky
2025-03-27 15:57:39 +01:00
parent 9838a13296
commit 81eddedb63

View File

@@ -379,18 +379,25 @@ public final class FunctionTypeUtils {
ResolvableType resolvableFunctionType = ResolvableType.forType(functionType);
ResolvableType resolvableInputType;
if (FunctionTypeUtils.isFunction(functionType)) {
resolvableInputType = resolvableFunctionType.as(Function.class);
}
else {
resolvableInputType = resolvableFunctionType.as(Consumer.class);
}
ResolvableType resolvableInputType = resolvableFunctionType.as(resolvableFunctionType.getRawClass());
if (resolvableInputType.getType() instanceof ParameterizedType) {
return resolvableInputType.getGeneric(0).getType();
}
else {
return Object.class;
// will try another way. See GH-1251
if (FunctionTypeUtils.isFunction(functionType)) {
resolvableInputType = resolvableFunctionType.as(Function.class);
}
else {
resolvableInputType = resolvableFunctionType.as(Consumer.class);
}
if (resolvableInputType.getType() instanceof ParameterizedType) {
return resolvableInputType.getGeneric(0).getType();
}
else {
return Object.class;
}
}
}