public static <A extends Annotation> A findAnnotation(AnnotatedElement element, Class<A> annotationType) {
        if (annotationType == null) {
            throw new NullPointerException("annotationType must not be null");
        }

        boolean inherited = annotationType.isAnnotationPresent(Inherited.class);
        return findAnnotation(element, annotationType, inherited, new HashSet<>());
    }
Find the first annotation of {@code annotationType} that is either
<em>directly present</em>, <em>meta-present</em>, or <em>indirectly
present</em> on the supplied {@code element}.

<p>If the element is a class and the annotation is neither <em>directly
present</em> nor <em>meta-present</em> on the class, this method will additionally search on
interfaces implemented by the class before finding an annotation that is <em>indirectly
present</em> on the class.

@param element the element on which to search for the annotation
@param annotationType the annotation type of need to search
@param <A> the annotation
@return the searched annotation type
core/src/main/java/com/alibaba/fastjson2/util/BeanUtils.java