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 resolvableFunctionType = ResolvableType.forType(functionType);
ResolvableType resolvableInputType; ResolvableType resolvableInputType = resolvableFunctionType.as(resolvableFunctionType.getRawClass());
if (FunctionTypeUtils.isFunction(functionType)) {
resolvableInputType = resolvableFunctionType.as(Function.class);
}
else {
resolvableInputType = resolvableFunctionType.as(Consumer.class);
}
if (resolvableInputType.getType() instanceof ParameterizedType) { if (resolvableInputType.getType() instanceof ParameterizedType) {
return resolvableInputType.getGeneric(0).getType(); return resolvableInputType.getGeneric(0).getType();
} }
else { 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;
}
} }
} }