TypeUtils.java 文件源码

java
阅读 25 收藏 0 点赞 0 评论 0

项目:components 作者:
/**
 * Traverse XML data object hierarchy and collect all descendants of a root class.
 *
 * @param rootClass root class of type hierarchy
 * @param clazz type class to be processed
 * @param classes set to collect type classes
 */
public static void collectXmlTypes(Class<?> rootClass, Class<?> clazz, Set<Class<?>> classes) {
    if (classes.contains(clazz)) {
        return;
    }

    if (clazz != rootClass && rootClass.isAssignableFrom(clazz) && !Modifier.isAbstract(clazz.getModifiers())) {
        classes.add(clazz);
    }

    XmlSeeAlso xmlSeeAlso = clazz.getAnnotation(XmlSeeAlso.class);
    if (xmlSeeAlso != null) {
        Collection<Class<?>> referencedClasses = new HashSet<>(Arrays.<Class<?>>asList(xmlSeeAlso.value()));
        for (Class<?> referencedClass : referencedClasses) {
            collectXmlTypes(rootClass, referencedClass, classes);
        }
    }
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号