作家
登录

Android注解快速入门和实用解析

作者: 来源: 2017-10-07 13:47:02 阅读 我要评论

  •     /** 
  •      * 解析注解,获取控件 
  •      */ 
  •     private void getAllAnnotationView() { 
  •         //获得成员变量 
  •         Field[] fields = this.getClass().getDeclaredFields(); 
  •  
  •         for (Field field : fields) { 
  •           try { 
  •             //断定注解 
  •             if (field.getAnnotations() != null) { 
  •               //肯定注解类型 
  •               if (field.isAnnotationPresent(GetViewTo.class)) { 
  •                 //许可修改反射属性 
  •                 field.setAccessible(true); 
  •                 GetViewTo getViewTo = field.getAnnotation(GetViewTo.class); 
  •                 //findViewById将注解的id,找到View注入成员变量中 
  •                 field.set(this, findViewById(getViewTo.value())); 
  •               } 
  •             } 
  •           } catch (Exception e) { 
  •           } 
  •         } 
  •       } 
  •  
  • 2.2 编译时注解

    运行时注解RUNTIME如上2.1所示,大年夜多半时刻实袈溱运行时应用反射来实现所需效不雅,这很大年夜程度上影响效力,如不雅BufferKnife的每个View注入弗成能若何实现。实际上,ButterKnife应用的是编译时注解CLASS,如下图X2.2,是ButterKnife的@BindView注解,它是一个编译时注解,在编译时生查对应java代码,实现注入。

    Android注解快速入门和实用解析

    说到编译时注解,就不得不说注解处理器 AbstractProcessor,如不雅你有留意,一般第三方注解相干的类库,如bufferKnike、ARouter,都有一个Compiler定名的Module,如下图X2.3,这琅绫擎一般都是注解处理器,用于编译时处理对应的注解。

    注解处理器(Annotation Processor)是javac的一个对象,它用来在编译时扫描和处理注解(Annotation)。你可以对自定义注解,并注册响应的注解处理器,用于处理你的注解逻辑。

    Android注解快速入门和实用解析

    如下所示,实现一个自定义注解处理器,至少重写四个办法,并且注册你的自定义Processor,具体可参考下方代码CustomProcessor。

    • @AutoService(Processor.class),谷歌供给的主动注册注解,为你生成注册Processor所须要的格局文件(com.google.auto相干包)。
    • init(ProcessingEnvironment env),初始化处理器,一般在这里获取我们须要的对象类。
    • getSupportedAnnotationTypes(),指定注解处理器是注册给哪个注解的,返回指定支撑的注解类集合。
    • getSupportedSourceVersion() ,指定java版本。
    • process(),处理器实际处理逻辑人口。
    	
    				
    			

      推荐阅读

      微软CEO纳德拉访谈:人工智能的大方向与未来是什么?

    人工智能的将来到底应当是什么样的?它应当朝着什么偏向成长?在成长的过程中应当留意什么?这些都是每一个存眷科技成长的人在思虑的问题。比来,O'Reilly Media 开创人兼 CEO Tim O'Reil>>>详细阅读


    本文标题:Android注解快速入门和实用解析

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

    关键词: 探索发现

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

    网友点评
    自媒体专栏

    评论

    热度

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