Skip to content

Commit 811f315

Browse files
committed
Refine PropertyResolver extensions null-safety
See spring-projectsgh-22687
1 parent bf9dea4 commit 811f315

File tree

2 files changed

+5
-12
lines changed

2 files changed

+5
-12
lines changed

spring-core/src/main/kotlin/org/springframework/core/env/PropertyResolverExtensions.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,8 @@ operator fun PropertyResolver.get(key: String) : String? = getProperty(key)
3939
* @author Sebastien Deleuze
4040
* @since 5.1
4141
*/
42-
inline fun <reified T> PropertyResolver.getProperty(key: String) : T =
43-
getProperty(key, T::class.java) as T
42+
inline fun <reified T> PropertyResolver.getProperty(key: String) : T? =
43+
getProperty(key, T::class.java)
4444

4545
/**
4646
* Extension for [PropertyResolver.getRequiredProperty] providing a
@@ -49,5 +49,5 @@ inline fun <reified T> PropertyResolver.getProperty(key: String) : T =
4949
* @author Sebastien Deleuze
5050
* @since 5.1
5151
*/
52-
inline fun <reified T> PropertyResolver.getRequiredProperty(key: String) : T =
52+
inline fun <reified T: Any> PropertyResolver.getRequiredProperty(key: String) : T =
5353
getRequiredProperty(key, T::class.java)

spring-core/src/test/kotlin/org/springframework/core/env/PropertyResolverExtensionsTests.kt

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -40,21 +40,14 @@ class PropertyResolverExtensionsTests {
4040
@Test
4141
fun `getProperty extension`() {
4242
every { propertyResolver.getProperty("name", String::class.java) } returns "foo"
43-
propertyResolver.getProperty<String>("name")
44-
verify { propertyResolver.getProperty("name", String::class.java) }
45-
}
46-
47-
@Test
48-
fun `getProperty extension with nullable type`() {
49-
every { propertyResolver.getProperty("name", String::class.java) } returns null
50-
propertyResolver.getProperty<String?>("name")
43+
val name: String? = propertyResolver.getProperty<String>("name")
5144
verify { propertyResolver.getProperty("name", String::class.java) }
5245
}
5346

5447
@Test
5548
fun `getRequiredProperty extension`() {
5649
every { propertyResolver.getRequiredProperty("name", String::class.java) } returns "foo"
57-
propertyResolver.getRequiredProperty<String>("name")
50+
val name: String = propertyResolver.getRequiredProperty<String>("name")
5851
verify { propertyResolver.getRequiredProperty("name", String::class.java) }
5952
}
6053

0 commit comments

Comments
 (0)