@Override
        public String toString() {
            int length = typeArguments.length;
            if (length == 0) {
                return typeToString(rawType);
            }

            StringBuilder stringBuilder = new StringBuilder(30 * (length + 1));
            stringBuilder.append(typeToString(rawType)).append("<").append(typeToString(typeArguments[0]));
            for (int i = 1; i < length; i++) {
                stringBuilder.append(", ").append(typeToString(typeArguments[i]));
            }
            return stringBuilder.append(">").toString();
        }
Find meta-present on indirectly present annotations.

@param annotationType the annotation type of need to search
@param candidates annotations for candidates
@param inherited whether has {@link Inherited}
@param visited this annotation whether visited
@param <A> the annotation type
@return the searched annotation
core/src/main/java/com/alibaba/fastjson2/util/BeanUtils.java