code: @SuppressWarnings("unchecked")
      public <A extends Annotation> A getAnnotation(final Class<?> clazz, final Class<A> annClass) throws AnnotationReadException {
          if(xmlInfo != null && xmlInfo.containsClassInfo(clazz.getName())) {
              final ClassInfo classInfo = xmlInfo.getClassInfo(clazz.getName());
              
              if(classInfo.containsAnnotationInfo(annClass.getName())) {
                  AnnotationInfo annInfo = classInfo.getAnnotationInfo(annClass.getName());
                  try {
                      return (A)annotationBuilder.buildAnnotation(Class.forName(annInfo.getClassName()), annInfo);
                  } catch (ClassNotFoundException e) {
                      throw new AnnotationReadException(String.format("not found class '%s'", annInfo.getClassName()), e);
                  }
              }
          }
          
          return clazz.getAnnotation(annClass);
      }
docs: Returns a class annotation for the specified type if such an annotation is present, else null.
  
  @param <A> the type of the annotation
  @param clazz the target class
  @param annClass the Class object corresponding to the annotation type
  @return the target class's annotation for the specified annotation type if present on this element, else null
  @throws AnnotationReadException