作家
登录

Android如何编写基于编译时注解的项目

作者: 来源: 2017-05-26 14:06:10 阅读 我要评论

  •             writer.flush(); 
  •             writer.close(); 
  •     } 
  •     return true
  • 可以看到生成代劳类的代码异常的简短,重要就是遍历我们的mProxyMap,然后取得每一个ProxyInfo,最后经由过程mFileUtils.createSourceFile来创建文件对象,类名为proxyInfo.getProxyClassFullName(),写入的内容为proxyInfo.generateJavaCode().

    看来生成Java代码的办法都在ProxyInfo琅绫擎。

    c.生成Java代码

    这里我们重要存眷其生成Java代码的方法。

    下面重要看生成Java代码的办法:

    1. #ProxyInfo 
    2. //key为id,value为对应的成员变量 
    3. public Map<Integer, VariableElement> mInjectElements = new HashMap<Integer, VariableElement>(); 
    4.  
    5. public String generateJavaCode(){ 
    6.     StringBuilder builder = new StringBuilder(); 
    7.     builder.append("package " + mPackageName).append(";\n\n"); 
    8.     builder.append("import com.zhy.ioc.*;\n"); 
    9.     builder.append("public class ").append(mProxyClassName).append(" implements " + SUFFIX + "<" + mTypeElement.getQualifiedName() + ">"); 
    10.     builder.append("\n{\n"); 
    11.     generateMethod(builder); 
    12.     builder.append("\n}\n"); 
    13.     return builder.toString(); 
    14. private void generateMethod(StringBuilder builder){ 
    15.      builder.append("public void inject("+mTypeElement.getQualifiedName()+" host , Object object )"); 
    16.     builder.append("\n{\n"); 
    17.     for(int id : mInjectElements.keySet()){ 
    18.         VariableElement variableElement = mInjectElements.get(id); 
    19.         String name = variableElement.getSimpleName().toString(); 
    20.         String type = variableElement.asType().toString() ; 
    21.  
    22.         builder.append(" if(object instanceof android.app.Activity)"); 
    23.         builder.append("\n{\n"); 
    24.         builder.append("host."+name).append(

        推荐阅读

        Python算法实战系列:栈

      栈(stack)又称之为客栈是一个特别的有序表,其插入和删除操作都在栈顶进行操作,并且按照先辈后出,落后先出的规矩进交运作。如下图所示例如枪的弹匣,第一颗放进弹匣的枪弹反而在发射出去>>>详细阅读


      本文标题:Android如何编写基于编译时注解的项目

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

    关键词: 探索发现

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

    网友点评
    自媒体专栏

    评论

    热度

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