code: 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));
      }
docs: 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, possibly overriding default annotation
  parameter values obtained from calling {@link AnnotationInfo#getClassInfo()} then
  {@link ClassInfo#getAnnotationDefaultParameterValues()}.
  
  <p>
  Note that the returned {@link Annotation} will have some sort of {@link InvocationHandler} proxy type, such
  as {@code io.github.classgraph.features.$Proxy4} or {@code com.sun.proxy.$Proxy6}. This is an unavoidable
  side effect of the fact that concrete {@link Annotation} instances cannot be instantiated directly.
  (ClassGraph uses <a href=
  "http://hg.openjdk.java.net/jdk7/jdk7/jdk/file/9b8c96f96a0f/src/share/classes/sun/reflect/annotation/AnnotationParser.java#l255">the
  same approach that the JDK uses to instantiate annotations from a map</a>.) However, proxy instances are
  <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/reflect/Proxy.html">handled
  specially</a> when it comes to casting and {@code instanceof}: you are able to cast the returned proxy
  instance to the annotation type, and {@code instanceof} checks against the annotation class will succeed.
  
  <p>
  Of course another option you have for getting the concrete annotations, rather than instantiating the
  annotations on a {@link ClassInfo} object via this method, is to call {@link ClassInfo#loadClass()}, and read
  the annotations directly from the returned {@link Class} object.
  
  @return The new {@link Annotation} instance, as a dynamic proxy object that can be cast to the expected
  annotation type.