Skip to content

Commit 2bae68b

Browse files
committed
Delete cases covered by Class.forName()
`Class.forName()` from `java.base/java.lang` has already built-in support for type names matching: - _Primitive arrays such as "[I", "[[[[D", etc._ and - _Object arrays such as "[Ljava.lang.String;", etc._ This commit deletes the redundant implementation from JUnit's internal `ReflectionUtils` helper.
1 parent 0fe36c7 commit 2bae68b

File tree

1 file changed

+1
-40
lines changed

1 file changed

+1
-40
lines changed

junit-platform-commons/src/main/java/org/junit/platform/commons/util/ReflectionUtils.java

Lines changed: 1 addition & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -129,21 +129,6 @@ public enum HierarchyTraversalMode {
129129
BOTTOM_UP
130130
}
131131

132-
// Pattern: "[Ljava.lang.String;", "[[[[Ljava.lang.String;", etc.
133-
private static final Pattern VM_INTERNAL_OBJECT_ARRAY_PATTERN = Pattern.compile("^(\\[+)L(.+);$");
134-
135-
/**
136-
* Pattern: "[x", "[[[[x", etc., where x is Z, B, C, D, F, I, J, S, etc.
137-
*
138-
* <p>The pattern intentionally captures the last bracket with the
139-
* capital letter so that the combination can be looked up via
140-
* {@link #classNameToTypeMap}. For example, the last matched group
141-
* will contain {@code "[I"} instead of {@code "I"}.
142-
*
143-
* @see Class#getName()
144-
*/
145-
private static final Pattern VM_INTERNAL_PRIMITIVE_ARRAY_PATTERN = Pattern.compile("^(\\[+)(\\[[ZBCDFIJS])$");
146-
147132
// Pattern: "java.lang.String[]", "int[]", "int[][][][]", etc.
148133
// ?> => non-capturing atomic group
149134
// ++ => possessive quantifier
@@ -855,32 +840,8 @@ public static Try<Class<?>> tryToLoadClass(String name, ClassLoader classLoader)
855840
}
856841

857842
return Try.call(() -> {
858-
Matcher matcher;
859-
860-
// Primitive arrays such as "[I", "[[[[D", etc.
861-
matcher = VM_INTERNAL_PRIMITIVE_ARRAY_PATTERN.matcher(trimmedName);
862-
if (matcher.matches()) {
863-
String brackets = matcher.group(1);
864-
String componentTypeName = matcher.group(2);
865-
// Calculate dimensions by counting brackets.
866-
int dimensions = brackets.length();
867-
868-
return loadArrayType(classLoader, componentTypeName, dimensions);
869-
}
870-
871-
// Object arrays such as "[Ljava.lang.String;", "[[[[Ljava.lang.String;", etc.
872-
matcher = VM_INTERNAL_OBJECT_ARRAY_PATTERN.matcher(trimmedName);
873-
if (matcher.matches()) {
874-
String brackets = matcher.group(1);
875-
String componentTypeName = matcher.group(2);
876-
// Calculate dimensions by counting brackets.
877-
int dimensions = brackets.length();
878-
879-
return loadArrayType(classLoader, componentTypeName, dimensions);
880-
}
881-
882843
// Arrays such as "java.lang.String[]", "int[]", "int[][][][]", etc.
883-
matcher = SOURCE_CODE_SYNTAX_ARRAY_PATTERN.matcher(trimmedName);
844+
Matcher matcher = SOURCE_CODE_SYNTAX_ARRAY_PATTERN.matcher(trimmedName);
884845
if (matcher.matches()) {
885846
String componentTypeName = matcher.group(1);
886847
String bracketPairs = matcher.group(2);

0 commit comments

Comments
 (0)