code: @SuppressWarnings("unchecked")
      public <A extends Annotation> A getAnnotation(final Field field, final Class<A> annClass) throws AnnotationReadException {
          
          final Class<?> clazz = field.getDeclaringClass();
          
          if(xmlInfo != null && xmlInfo.containsClassInfo(clazz.getName())) {
              final ClassInfo classInfo = xmlInfo.getClassInfo(clazz.getName());
              
              if(classInfo.containsFieldInfo(field.getName())) {
                  FieldInfo fieldInfo = classInfo.getFieldInfo(field.getName());
                  if(fieldInfo != null && fieldInfo.containsAnnotationInfo(annClass.getName())){
                      AnnotationInfo annInfo = fieldInfo.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 field.getAnnotation(annClass);
      }
docs: フィールドに付与されたアノテーションを指定して取得する。
  @param field 取得対象のフィールド
  @param annClass アノテーションのタイプ
  @return
  @throws AnnotationReadException