@@ -151,12 +151,7 @@ private void registerRuntimeHintsIfNecessary(RegisteredBean registeredBean, Exec
151151 if (registeredBean .getBeanFactory () instanceof DefaultListableBeanFactory dlbf ) {
152152 RuntimeHints runtimeHints = this .generationContext .getRuntimeHints ();
153153 ProxyRuntimeHintsRegistrar registrar = new ProxyRuntimeHintsRegistrar (dlbf .getAutowireCandidateResolver ());
154- if (constructorOrFactoryMethod instanceof Method method ) {
155- registrar .registerRuntimeHints (runtimeHints , method );
156- }
157- else if (constructorOrFactoryMethod instanceof Constructor <?> constructor ) {
158- registrar .registerRuntimeHints (runtimeHints , constructor );
159- }
154+ registrar .registerRuntimeHints (runtimeHints , constructorOrFactoryMethod );
160155 }
161156 }
162157
@@ -419,33 +414,17 @@ public static boolean hasConstructorWithOptionalParameter(Class<?> beanClass) {
419414 }
420415
421416
422- private static class ProxyRuntimeHintsRegistrar {
423-
424- private final AutowireCandidateResolver candidateResolver ;
425-
426- public ProxyRuntimeHintsRegistrar (AutowireCandidateResolver candidateResolver ) {
427- this .candidateResolver = candidateResolver ;
428- }
417+ private record ProxyRuntimeHintsRegistrar (AutowireCandidateResolver candidateResolver ) {
429418
430- public void registerRuntimeHints (RuntimeHints runtimeHints , Method method ) {
431- Class <?>[] parameterTypes = method .getParameterTypes ();
419+ public void registerRuntimeHints (RuntimeHints runtimeHints , Executable executable ) {
420+ Class <?>[] parameterTypes = executable .getParameterTypes ();
432421 for (int i = 0 ; i < parameterTypes .length ; i ++) {
433- MethodParameter methodParam = new MethodParameter ( method , i );
422+ MethodParameter methodParam = MethodParameter . forExecutable ( executable , i );
434423 DependencyDescriptor dependencyDescriptor = new DependencyDescriptor (methodParam , true );
435424 registerProxyIfNecessary (runtimeHints , dependencyDescriptor );
436425 }
437426 }
438427
439- public void registerRuntimeHints (RuntimeHints runtimeHints , Constructor <?> constructor ) {
440- Class <?>[] parameterTypes = constructor .getParameterTypes ();
441- for (int i = 0 ; i < parameterTypes .length ; i ++) {
442- MethodParameter methodParam = new MethodParameter (constructor , i );
443- DependencyDescriptor dependencyDescriptor = new DependencyDescriptor (
444- methodParam , true );
445- registerProxyIfNecessary (runtimeHints , dependencyDescriptor );
446- }
447- }
448-
449428 private void registerProxyIfNecessary (RuntimeHints runtimeHints , DependencyDescriptor dependencyDescriptor ) {
450429 Class <?> proxyType = this .candidateResolver .getLazyResolutionProxyClass (dependencyDescriptor , null );
451430 if (proxyType != null && Proxy .isProxyClass (proxyType )) {
0 commit comments