in src/main/java/com/ql/util/express/ExpressUtil.java [407:449]
public static Class<?> getJavaClass(String type) {
int index = type.indexOf("[]");
if (index < 0) {
return getJavaClassInner(type);
}
StringBuilder arrayString = new StringBuilder();
arrayString.append("[");
String baseType = type.substring(0, index);
while ((index = type.indexOf("[]", index + 2)) >= 0) {
arrayString.append("[");
}
Class<?> baseClass = getJavaClassInner(baseType);
try {
String baseName = "";
if (!baseClass.isPrimitive()) {
return loadClass(arrayString + "L"
+ baseClass.getName() + ";");
} else {
if (baseClass.equals(boolean.class)) {
baseName = "Z";
} else if (baseClass.equals(byte.class)) {
baseName = "B";
} else if (baseClass.equals(char.class)) {
baseName = "C";
} else if (baseClass.equals(double.class)) {
baseName = "D";
} else if (baseClass.equals(float.class)) {
baseName = "F";
} else if (baseClass.equals(int.class)) {
baseName = "I";
} else if (baseClass.equals(long.class)) {
baseName = "J";
} else if (baseClass.equals(short.class)) {
baseName = "S";
}
return loadClass(arrayString + baseName);
}
} catch (ClassNotFoundException ex) {
throw new RuntimeException(ex);
}
}