AbstractionCollectingMapper.java 文件源码

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

项目:graphql-spqr 作者:
protected Set<Type> collectAbstract(AnnotatedType javaType, Set<Type> seen, BuildContext buildContext) {
    javaType = buildContext.globalEnvironment.converters.getMappableType(javaType);
    if (Scalars.isScalar(javaType.getType())) {
        return Collections.emptySet();
    }
    if (GenericTypeReflector.isSuperType(Collection.class, javaType.getType())) {
        AnnotatedType elementType = GenericTypeReflector.getTypeParameter(javaType, Collection.class.getTypeParameters()[0]);
        return collectAbstractInner(elementType, seen, buildContext);
    }
    if (GenericTypeReflector.isSuperType(Map.class, javaType.getType())) {
        AnnotatedType keyType = GenericTypeReflector.getTypeParameter(javaType, Map.class.getTypeParameters()[0]);
        AnnotatedType valueType = GenericTypeReflector.getTypeParameter(javaType, Map.class.getTypeParameters()[1]);
        Set<Type> abstractTypes = collectAbstractInner(keyType, seen, buildContext);
        abstractTypes.addAll(collectAbstractInner(valueType, seen, buildContext));
        return abstractTypes;
    }
    return collectAbstractInner(javaType, seen, buildContext);
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号