MapEncodeCodeProvider.java 文件源码

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

项目:bsoneer 作者:
public void putEncodeCode(Builder cb, TypeMirror iterableTypeMirror, Collection<EncodeCodeProvider> allProviders, String varName) {
    Elements elements = UtilsProvider.getElements();
    TypeElement typeElement = elements.getTypeElement(Map.Entry.class.getCanonicalName());

    DeclaredType dt = (DeclaredType)iterableTypeMirror;
    Types types = UtilsProvider.getTypes();
    DeclaredType declaredType = types.getDeclaredType(typeElement, dt.getTypeArguments().get(0), dt.getTypeArguments().get(1));

    typeElement = UtilsProvider.getElements().getTypeElement(Set.class.getCanonicalName());
    declaredType = UtilsProvider.getTypes().getDeclaredType(typeElement, declaredType);

    // Rely on set encoder
    for(EncodeCodeProvider ecp:allProviders){
        if (ecp.applies(declaredType)) {
            ecp.putEncodeCode(cb, declaredType, allProviders, varName+".entrySet()");
            break;
        }
    }
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号