作家
登录

安卓AOP三剑客之Android APT技术浅谈

作者: 来源: 2017-10-16 16:04:53 阅读 我要评论

set, RoundEnvironment roundEnv, 
  •                 AnnotationProcessor abstractProcessor) { 
  • // 萌芽注解是否存在 
  • Set<? extends Element> elementSet = 
  •         roundEnv.getElementsAnnotatedWith(SingleDelegate.class); 
  • Set<TypeElement> typeElementSet = ElementFilter.typesIn(elementSet); 
  • if (typeElementSet == null || typeElementSet.isEmpty()) { 
  •     return
  •  
  • // 轮回处理注解 
  • for (TypeElement typeElement : typeElementSet) { 
  •     if (!(typeElement.getKind() == ElementKind.INTERFACE)) { // 只处理接口类型 
  •         continue
  •     } 
  •  
  •     // 处理 SingleDelegate,只处理 annotation.classNameImpl() 不为空的注解 
  •     SingleDelegate annotation = typeElement.getAnnotation(SingleDelegate.class); 
  •     if ("".equals(annotation.classNameImpl())) { 
  •         continue
  •     } 
  •     Delegate delegate = annotation.delegate(); 
  •  
  •     // 添加构造器 
  •     MethodSpec.Builder constructorBuilder = MethodSpec.constructorBuilder() 
  •             .addModifiers(Modifier.PUBLIC); 
  •  
  •     // 创建类名相干 class builder 
  •     TypeSpec.Builder builder = 
  •             ProcessUtils.createTypeSpecBuilder(typeElement, annotation.classNameImpl()); 
  •  
  •     // 处理 delegate 
  •     builder = ProcessUtils.processDelegate(typeElement, builder, 
  •             constructorBuilder, delegate); 
  •  
  •     // 检查是否持续其它接口 
  •     builder = processSuperSingleDelegate(abstractProcessor, builder, constructorBuilder, typeElement); 
  •  
  •     // 完成构造器 
  •     builder.addMethod(constructorBuilder.build()); 
  •  
  •     // 创建 JavaFile 
  •     JavaFile javaFile = JavaFile.builder(AnnotationProcessor.PACKAGE, builder.build()).build(); 
  •     try { 
  •         javaFile.writeTo(abstractProcessor.filer); 
  •     } catch (IOException e) { 
  •         e.printStackTrace(); 
  •     } 

      推荐阅读

      在云端开展深度学习正逢其时

    沙龙晃荡 | 去哪儿、陌陌、ThoughtWorks在主动化运维中的实践!10.28不见不散!大年夜多半公共云都可以应用机械进修,这些供给了企业须要的人工智能的才能。就像深度进修一样,云计算让人工智能从新焕发>>>详细阅读


    本文标题:安卓AOP三剑客之Android APT技术浅谈

    地址:http://www.17bianji.com/lsqh/37959.html

  • 关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)