作家
登录

Android Studio中使用apt

作者: 来源: 2017-06-08 08:54:39 阅读 我要评论

  •         tb.addMethod(mb.build()); 
  •  
  •         JavaFile jf = JavaFile.builder("com.example.apt", tb.build()).build(); 
  •         //将代码写入java文件中 
  •         try { 
  •             jf.writeTo(processingEnv.getFiler()); 
  •         } catch (IOException e) { 
  •             e.printStackTrace(); 
  •         } 
  •  
  •         return true
  •     } 
  •  
  • 大年夜致说下步调:

    (1)添加@AutoService(Processor.class)注解,这个注解会主动在指定路径下生成一个设备文件:

    (4)生成代码块的重要逻辑是:遍历所有被@Test注解过的类,掏出注解内容及类名打印出来。

    apt/build/classes/main/META-INF/services/javax.annotation.processing.Processor;

    (2)添加@SupportedAnnotationTypes注解,设备这个类所要处理的注解类型。(传入String类型参数,格局为:包名+类名);

    (3)采取javapoet书写代码构建逻辑,具体用法去这里看看;

    5.在类上添加@Test注解,这里就用MainActivity来尝尝

    6.rebuild工程,在app/build/generated/source/apt/debug路径下找到目标java文件。至此,大年夜功告成  

    TestClass代码如下:

    1. public class TestClass { 
    2.   public static void main(String[] args) { 
    3.     System.out.println("abc + MainActivity"); 
    4.   } 
    5.  

    五、然而并没什么卵用?

    确切,到此为止,我们确切是用了几十行代码去生成了一个5行代码的TestClass,这种操作来说看起来可以用4个字来形容:闲得蛋疼。

    1. public class TestClass { 
    2.   public static void main(String[] args) { 
    3.     System.out.println("A + ActivityA"); 
    4.     System.out.println("B + ActivityB"); 
    5.     System.out.println("C + ActivityC"); 
    6.     System.out.println("D + ActivityD"); 
    7.     System.out.println("abc + MainActivity"); 
    8.   } 

    恍然大年夜悟!本来,是这么玩的!这时刻,你是否已经感到到apt的魅力了呢?是的,它能帮你干掉落反复代码,让你杜绝掉落复制粘贴。



      推荐阅读

      Java关键字volatile的理解与正确使用 | 干货分享

    其实面对膳绫擎的反例场景可以应用JDK1.5 java.util.concurrent.atomic中供给的原子包装类型来包管原子性操作 概述1、不合适应用volatile的场景(非原子性操作)Java说话中关键字 volatile 被>>>详细阅读


    本文标题:Android Studio中使用apt

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

    关键词: 探索发现

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

    网友点评
    自媒体专栏

    评论

    热度

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