resolvedType = resolveType(type, loader);
resolvedType = resolveType(type);
    private Object resolveType(final AnnotationElement.NamedValue namedValue, final ClassLoader loader) {        final Object value = namedValue.getValue();        if (value instanceof Type) {            // type            final Type type = (Type)value;            final Class resolvedType;            try {                if (type.getClassName().endsWith("[]")) {                    //if (type.getDimensions() > 0) { // Note: Bugs in ASM prevents me from using this check, first: if type is primitive -> NPE, second: dimension is wrong for non-array types (1)                    int dimensions = type.getDimensions();                    Type elementType = type.getElementType();                    Class componentType = resolveType(elementType, loader);                    resolvedType = Array.newInstance(componentType, new int[dimensions]).getClass();                } else {                    resolvedType = resolveType(type, loader);                }            } catch (ClassNotFoundException cnfe) {                throw new ResolveAnnotationException(                        "class [" + type.getClassName() + "] defined in annotation can not be found in class loader [" +                        loader + "]", cnfe                );            }            return resolvedType;        } else {            // primitive value            return value;        }    }