code: public static final <T extends Annotation> T getAnnotation(Object bean, String property, Class<T> annotationClass)
      {
          return (T) doFor(
              bean, 
              property, 
              null,
              (Object a, int i)->{Object o=Array.get(a, i);return o!=null?o.getClass().getAnnotation(annotationClass):null;},
              (List l, int i)->{return l.get(i).getClass().getAnnotation(annotationClass);},
              (Object b, Class c, String p)->{return getField(c, p).getAnnotation(annotationClass);}, 
              (Object b, Method m)->{return m.getAnnotation(annotationClass);});
      }
docs: Returns property annotation.
  @param <T>
  @param bean
  @param property
  @param annotationClass
  @return