|
33 | 33 | import org.springframework.aot.hint.RuntimeHintsRegistrar;
|
34 | 34 | import org.springframework.beans.BeanUtils;
|
35 | 35 | import org.springframework.boot.context.properties.NestedConfigurationProperty;
|
| 36 | +import org.springframework.core.KotlinDetector; |
| 37 | +import org.springframework.core.KotlinReflectionParameterNameDiscoverer; |
36 | 38 | import org.springframework.core.ParameterNameDiscoverer;
|
| 39 | +import org.springframework.core.PrioritizedParameterNameDiscoverer; |
37 | 40 | import org.springframework.core.ResolvableType;
|
38 | 41 | import org.springframework.core.StandardReflectionParameterNameDiscoverer;
|
39 | 42 | import org.springframework.core.annotation.MergedAnnotations;
|
@@ -109,7 +112,16 @@ public static BindableRuntimeHintsRegistrar forTypes(Class<?>... types) {
|
109 | 112 | */
|
110 | 113 | private final class Processor {
|
111 | 114 |
|
112 |
| - private static final ParameterNameDiscoverer PARAMETER_NAME_DISCOVERER = new StandardReflectionParameterNameDiscoverer(); |
| 115 | + private static final ParameterNameDiscoverer parameterNameDiscoverer; |
| 116 | + |
| 117 | + static { |
| 118 | + PrioritizedParameterNameDiscoverer discoverer = new PrioritizedParameterNameDiscoverer(); |
| 119 | + if (KotlinDetector.isKotlinReflectPresent()) { |
| 120 | + discoverer.addDiscoverer(new KotlinReflectionParameterNameDiscoverer()); |
| 121 | + } |
| 122 | + discoverer.addDiscoverer(new StandardReflectionParameterNameDiscoverer()); |
| 123 | + parameterNameDiscoverer = discoverer; |
| 124 | + } |
113 | 125 |
|
114 | 126 | private final Class<?> type;
|
115 | 127 |
|
@@ -159,7 +171,7 @@ private void handleConstructor(ReflectionHints hints) {
|
159 | 171 | }
|
160 | 172 |
|
161 | 173 | private void verifyParameterNamesAreAvailable() {
|
162 |
| - String[] parameterNames = PARAMETER_NAME_DISCOVERER.getParameterNames(this.bindConstructor); |
| 174 | + String[] parameterNames = parameterNameDiscoverer.getParameterNames(this.bindConstructor); |
163 | 175 | if (parameterNames == null) {
|
164 | 176 | this.compiledWithoutParameters.add(this.bindConstructor.getDeclaringClass());
|
165 | 177 | }
|
|
0 commit comments