Skip to content

Commit 7043421

Browse files
committed
Stop using deprecated ClassUtils.getArrayClass
There is now Types.array instead.
1 parent 2517a4d commit 7043421

2 files changed

Lines changed: 23 additions & 9 deletions

File tree

src/main/java/org/scijava/util/ClassUtils.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,6 @@
4848
import java.util.Map;
4949
import java.util.Set;
5050

51-
import org.scijava.util.Types;
52-
5351
/**
5452
* Useful methods for working with {@link Class} objects and primitive types.
5553
*
@@ -188,19 +186,19 @@ public static Class<?> loadClass(final String name,
188186
// handle source style arrays (e.g.: "java.lang.String[]")
189187
if (name.endsWith("[]")) {
190188
final String elementClassName = name.substring(0, name.length() - 2);
191-
return getArrayClass(loadClass(elementClassName, classLoader));
189+
return Types.array(loadClass(elementClassName, classLoader));
192190
}
193191

194192
// handle non-primitive internal arrays (e.g.: "[Ljava.lang.String;")
195193
if (name.startsWith("[L") && name.endsWith(";")) {
196194
final String elementClassName = name.substring(2, name.length() - 1);
197-
return getArrayClass(loadClass(elementClassName, classLoader));
195+
return Types.array(loadClass(elementClassName, classLoader));
198196
}
199197

200198
// handle other internal arrays (e.g.: "[I", "[[I", "[[Ljava.lang.String;")
201199
if (name.startsWith("[")) {
202200
final String elementClassName = name.substring(1);
203-
return getArrayClass(loadClass(elementClassName, classLoader));
201+
return Types.array(loadClass(elementClassName, classLoader));
204202
}
205203

206204
// load the class!

src/test/java/org/scijava/util/ClassUtilsTest.java

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,6 @@ public void testLoadClass() {
7979
assertLoaded(int[].class, "int[]");
8080
assertLoaded(long[].class, "long[]");
8181
assertLoaded(short[].class, "short[]");
82-
assertLoaded(null, "void[]");
8382
assertLoaded(String[].class, "string[]");
8483
assertLoaded(Number[].class, "java.lang.Number[]");
8584
assertLoaded(boolean[][].class, "boolean[][]");
@@ -90,7 +89,6 @@ public void testLoadClass() {
9089
assertLoaded(int[][].class, "int[][]");
9190
assertLoaded(long[][].class, "long[][]");
9291
assertLoaded(short[][].class, "short[][]");
93-
assertLoaded(null, "void[][]");
9492
assertLoaded(String[][].class, "string[][]");
9593
assertLoaded(Number[][].class, "java.lang.Number[][]");
9694
assertLoaded(boolean[].class, "[Z");
@@ -101,7 +99,6 @@ public void testLoadClass() {
10199
assertLoaded(int[].class, "[I");
102100
assertLoaded(long[].class, "[J");
103101
assertLoaded(short[].class, "[S");
104-
assertLoaded(null, "[V");
105102
assertLoaded(String[].class, "[Lstring;");
106103
assertLoaded(Number[].class, "[Ljava.lang.Number;");
107104
assertLoaded(boolean[][].class, "[[Z");
@@ -112,11 +109,30 @@ public void testLoadClass() {
112109
assertLoaded(int[][].class, "[[I");
113110
assertLoaded(long[][].class, "[[J");
114111
assertLoaded(short[][].class, "[[S");
115-
assertLoaded(null, "[[V");
116112
assertLoaded(String[][].class, "[[Lstring;");
117113
assertLoaded(Number[][].class, "[[Ljava.lang.Number;");
118114
}
119115

116+
@Test(expected = IllegalArgumentException.class)
117+
public void testLoadClassVoidArray1D() {
118+
ClassUtils.loadClass("void[]");
119+
}
120+
121+
@Test(expected = IllegalArgumentException.class)
122+
public void testLoadClassVoidArray1DShort() {
123+
ClassUtils.loadClass("[V");
124+
}
125+
126+
@Test(expected = IllegalArgumentException.class)
127+
public void testLoadClassVoidArray2D() {
128+
ClassUtils.loadClass("void[][]");
129+
}
130+
131+
@Test(expected = IllegalArgumentException.class)
132+
public void testLoadClassVoidArray2DShort() {
133+
ClassUtils.loadClass("[[V");
134+
}
135+
120136
@Test
121137
public void testFailureQuiet() {
122138
assertNull(ClassUtils.loadClass("a.non.existent.class"));

0 commit comments

Comments
 (0)