Skip to content

Commit 20ddd9f

Browse files
committed
Polish KotlinReflectionParameterNameDiscoverer
1 parent a638828 commit 20ddd9f

File tree

1 file changed

+20
-22
lines changed

1 file changed

+20
-22
lines changed

spring-core/src/main/java/org/springframework/core/KotlinReflectionParameterNameDiscoverer.java

Lines changed: 20 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2023 the original author or authors.
2+
* Copyright 2002-2025 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -41,36 +41,34 @@ public class KotlinReflectionParameterNameDiscoverer implements ParameterNameDis
4141

4242
@Override
4343
public @Nullable String @Nullable [] getParameterNames(Method method) {
44-
if (!KotlinDetector.isKotlinType(method.getDeclaringClass())) {
45-
return null;
46-
}
47-
48-
try {
49-
KFunction<?> function = ReflectJvmMapping.getKotlinFunction(method);
50-
return (function != null ? getParameterNames(function.getParameters()) : null);
51-
}
52-
catch (UnsupportedOperationException ex) {
53-
return null;
44+
if (KotlinDetector.isKotlinType(method.getDeclaringClass())) {
45+
try {
46+
KFunction<?> function = ReflectJvmMapping.getKotlinFunction(method);
47+
return (function != null ? getParameterNames(function.getParameters()) : null);
48+
}
49+
catch (UnsupportedOperationException ignored) {
50+
}
5451
}
52+
return null;
5553
}
5654

5755
@Override
5856
public @Nullable String @Nullable [] getParameterNames(Constructor<?> ctor) {
59-
if (ctor.getDeclaringClass().isEnum() || !KotlinDetector.isKotlinType(ctor.getDeclaringClass())) {
60-
return null;
61-
}
62-
63-
try {
64-
KFunction<?> function = ReflectJvmMapping.getKotlinFunction(ctor);
65-
return (function != null ? getParameterNames(function.getParameters()) : null);
66-
}
67-
catch (UnsupportedOperationException ex) {
68-
return null;
57+
if (!ctor.getDeclaringClass().isEnum() && KotlinDetector.isKotlinType(ctor.getDeclaringClass())) {
58+
try {
59+
KFunction<?> function = ReflectJvmMapping.getKotlinFunction(ctor);
60+
if (function != null) {
61+
return getParameterNames(function.getParameters());
62+
}
63+
}
64+
catch (UnsupportedOperationException ignored) {
65+
}
6966
}
67+
return null;
7068
}
7169

7270
private @Nullable String @Nullable [] getParameterNames(List<KParameter> parameters) {
73-
String[] parameterNames = parameters.stream()
71+
@Nullable String[] parameterNames = parameters.stream()
7472
// Extension receivers of extension methods must be included as they appear as normal method parameters in Java
7573
.filter(p -> KParameter.Kind.VALUE.equals(p.getKind()) || KParameter.Kind.EXTENSION_RECEIVER.equals(p.getKind()))
7674
// extension receivers are not explicitly named, but require a name for Java interoperability

0 commit comments

Comments
 (0)