/** * Load the {@link Annotation} class corresponding to this {@link AnnotationInfo} object, by calling * {@code getClassInfo().loadClass()}, then create a new instance of the annotation, with the annotation * parameter values obtained from this {@link AnnotationInfo} object. * * @return The new {@link Annotation} instance. */ public Annotation loadClassAndInstantiate() { final Class<? extends Annotation> annotationClass = getClassInfo().loadClass(Annotation.class); return (Annotation) Proxy.newProxyInstance(annotationClass.getClassLoader(), new Class[] { annotationClass }, new AnnotationInvocationHandler(annotationClass, this)); }