value = ProxyFactory.newAnnotationProxy(annotation, valueType.getClassLoader());
value = ProxyFactory.newAnnotationProxy(annotation, getAnnotatedClassClassLoader());
    private Object resolveValue(final AnnotationElement.NamedValue namedValue, final Class valueType) {        if (namedValue.isResolved()) {            return namedValue.getResolvedValue();        }        AnnotationElement.Type type = namedValue.getType();        ClassLoader loader = valueType.getClassLoader();        if (loader == null) {            loader = ClassLoader.getSystemClassLoader();        }        final Object value;        if (type.equals(AnnotationElement.Type.ANNOTATION)) {            AnnotationElement.Annotation annotation = (AnnotationElement.Annotation)namedValue.getValue();            value = ProxyFactory.newAnnotationProxy(annotation, valueType.getClassLoader());        } else if (type.equals(AnnotationElement.Type.ARRAY)) {            value = resolveArray(namedValue, valueType);        } else if (type.equals(AnnotationElement.Type.ENUM)) {            value = resolveEnum(namedValue, loader);        } else if (type.equals(AnnotationElement.Type.TYPE)) {            value = resolveType(namedValue, loader);        } else {            value = namedValue.getValue();        }        namedValue.setResolvedValue(value);        return value;    }