|
|
|
@ -20,7 +20,6 @@ import java.io.Closeable; |
|
|
|
import java.io.Externalizable; |
|
|
|
import java.io.Externalizable; |
|
|
|
import java.io.File; |
|
|
|
import java.io.File; |
|
|
|
import java.io.Serializable; |
|
|
|
import java.io.Serializable; |
|
|
|
import java.lang.reflect.Array; |
|
|
|
|
|
|
|
import java.lang.reflect.Constructor; |
|
|
|
import java.lang.reflect.Constructor; |
|
|
|
import java.lang.reflect.Method; |
|
|
|
import java.lang.reflect.Method; |
|
|
|
import java.lang.reflect.Modifier; |
|
|
|
import java.lang.reflect.Modifier; |
|
|
|
@ -273,21 +272,21 @@ public abstract class ClassUtils { |
|
|
|
if (name.endsWith(ARRAY_SUFFIX)) { |
|
|
|
if (name.endsWith(ARRAY_SUFFIX)) { |
|
|
|
String elementClassName = name.substring(0, name.length() - ARRAY_SUFFIX.length()); |
|
|
|
String elementClassName = name.substring(0, name.length() - ARRAY_SUFFIX.length()); |
|
|
|
Class<?> elementClass = forName(elementClassName, classLoader); |
|
|
|
Class<?> elementClass = forName(elementClassName, classLoader); |
|
|
|
return Array.newInstance(elementClass, 0).getClass(); |
|
|
|
return elementClass.arrayType(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// "[Ljava.lang.String;" style arrays
|
|
|
|
// "[Ljava.lang.String;" style arrays
|
|
|
|
if (name.startsWith(NON_PRIMITIVE_ARRAY_PREFIX) && name.endsWith(";")) { |
|
|
|
if (name.startsWith(NON_PRIMITIVE_ARRAY_PREFIX) && name.endsWith(";")) { |
|
|
|
String elementName = name.substring(NON_PRIMITIVE_ARRAY_PREFIX.length(), name.length() - 1); |
|
|
|
String elementName = name.substring(NON_PRIMITIVE_ARRAY_PREFIX.length(), name.length() - 1); |
|
|
|
Class<?> elementClass = forName(elementName, classLoader); |
|
|
|
Class<?> elementClass = forName(elementName, classLoader); |
|
|
|
return Array.newInstance(elementClass, 0).getClass(); |
|
|
|
return elementClass.arrayType(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// "[[I" or "[[Ljava.lang.String;" style arrays
|
|
|
|
// "[[I" or "[[Ljava.lang.String;" style arrays
|
|
|
|
if (name.startsWith(INTERNAL_ARRAY_PREFIX)) { |
|
|
|
if (name.startsWith(INTERNAL_ARRAY_PREFIX)) { |
|
|
|
String elementName = name.substring(INTERNAL_ARRAY_PREFIX.length()); |
|
|
|
String elementName = name.substring(INTERNAL_ARRAY_PREFIX.length()); |
|
|
|
Class<?> elementClass = forName(elementName, classLoader); |
|
|
|
Class<?> elementClass = forName(elementName, classLoader); |
|
|
|
return Array.newInstance(elementClass, 0).getClass(); |
|
|
|
return elementClass.arrayType(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
ClassLoader clToUse = classLoader; |
|
|
|
ClassLoader clToUse = classLoader; |
|
|
|
|