in bval-jsr/src/main/java/org/apache/bval/util/reflection/Reflection.java [263:305]
public static Class<?> toClass(String className, boolean resolve, ClassLoader loader)
throws ClassNotFoundException {
Validate.notNull(className, "className was null");
// array handling
int dims = 0;
while (className.endsWith("[]")) {
dims++;
className = className.substring(0, className.length() - 2);
}
// check against primitive types
boolean primitive = false;
if (className.indexOf('.') == -1) {
for (int i = 0; !primitive && (i < NATIVE_CODES.length); i++) {
if (NATIVE_CODES[i][1].equals(className)) {
if (dims == 0) {
return (Class<?>) NATIVE_CODES[i][0];
}
className = (String) NATIVE_CODES[i][2];
primitive = true;
}
}
}
if (dims > 0) {
StringBuilder buf = new StringBuilder(className.length() + dims + 2);
for (int i = 0; i < dims; i++) {
buf.append('[');
}
if (!primitive) {
buf.append('L');
}
buf.append(className);
if (!primitive) {
buf.append(';');
}
className = buf.toString();
}
if (loader == null) {
loader = Thread.currentThread().getContextClassLoader();
}
return Class.forName(className, resolve, loader);
}