From 49ddf798e0c41e5b7dcd7492b18a196f74a968e1 Mon Sep 17 00:00:00 2001 From: Sam Brannen Date: Fri, 13 Dec 2019 15:47:05 +0100 Subject: [PATCH] Polish ClassUtils.resolvePrimitiveClassName() See gh-24192 --- .../org/springframework/util/ClassUtils.java | 2 +- .../springframework/util/ClassUtilsTests.java | 24 +++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/spring-core/src/main/java/org/springframework/util/ClassUtils.java b/spring-core/src/main/java/org/springframework/util/ClassUtils.java index d0c83bd92d4..6b03c7c3366 100644 --- a/spring-core/src/main/java/org/springframework/util/ClassUtils.java +++ b/spring-core/src/main/java/org/springframework/util/ClassUtils.java @@ -455,7 +455,7 @@ public abstract class ClassUtils { Class result = null; // Most class names will be quite long, considering that they // SHOULD sit in a package, so a length check is worthwhile. - if (name != null && name.length() <= 8) { + if (name != null && name.length() <= 7) { // Could be a primitive - likely. result = primitiveTypeNameMap.get(name); } diff --git a/spring-core/src/test/java/org/springframework/util/ClassUtilsTests.java b/spring-core/src/test/java/org/springframework/util/ClassUtilsTests.java index 4c899124d92..358e80d976f 100644 --- a/spring-core/src/test/java/org/springframework/util/ClassUtilsTests.java +++ b/spring-core/src/test/java/org/springframework/util/ClassUtilsTests.java @@ -36,6 +36,7 @@ import java.util.Set; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.CsvSource; import org.junit.jupiter.params.provider.ValueSource; import org.springframework.tests.sample.objects.DerivedTestObject; @@ -155,6 +156,29 @@ class ClassUtilsTests { assertThat(ClassUtils.isCacheSafe(composite, childLoader3)).isTrue(); } + @ParameterizedTest + @CsvSource({ + "boolean, boolean", + "byte, byte", + "char, char", + "short, short", + "int, int", + "long, long", + "float, float", + "double, double", + "[Z, boolean[]", + "[B, byte[]", + "[C, char[]", + "[S, short[]", + "[I, int[]", + "[J, long[]", + "[F, float[]", + "[D, double[]" + }) + void resolvePrimitiveClassName(String input, Class output) { + assertThat(ClassUtils.resolvePrimitiveClassName(input)).isEqualTo(output); + } + @Test void getShortName() { String className = ClassUtils.getShortName(getClass());