• android 注解


    1:刚刚新版本号的公布,抽出时间写下关于注解在android 开发中的使用

      在java中注解的相关的解释:

       元注解:

            元注解的作用就是负责注解其它注解,Java5.0 定义了4个标准的 meta-annotation 类型,他们被用来听对其它 annotation 类型作说明,

         

          @Tatget

           说明了Annotation 所修饰的对象范围 :Annotation 可被用于 packages types ( 类 接口 枚举 Annotation 类型) 类型成员 (方法 构造方法 成员变量 枚举值 ) 方法參数 和本地变量 (循环变量 catch 參数) 在Annotation 类型的声明中使用了target 可更加明晰其修饰的目标

    取值(ElementType)有:

        1.CONSTRUCTOR:用于描写叙述构造器
        2.FIELD:用于描写叙述域
        3.LOCAL_VARIABLE:用于描写叙述局部变量
        4.METHOD:用于描写叙述方法
        5.PACKAGE:用于描写叙述包
        6.PARAMETER:用于描写叙述參数
        7.TYPE:用于描写叙述类、接口(包含注解类型) 或enum声明

    @RetentionPoicy 

        定义改Annoation 被保留的时间长短,某些Annotation 仅出如今源码中,而被编译器丢弃,而还有一些却被编译在class 文件里。编译在class文件里的Annotation 可能会被nijihulue 

     1.SOURCE:在源文件里有效(即源文件保留)
        2.CLASS:在class文件里有效(即class保留)
        3.RUNTIME:在执行时有效(即执行时保留)

      Retention meta-annotation类型有唯一的value作为成员。它的取值来自java.lang.annotation.RetentionPolicy的枚举类型值

    @Documented:

      @Documented用于描写叙述其他类型的annotation应该被作为被标注的程序成员的公共API。因此能够被比如javadoc此类的工具文档化。Documented是一个标记注解。没有成员。


    @Inherited:

      @Inherited 元注解是一个标记注解,@Inherited阐述了某个被标注的类型是被继承的。假设一个使用了@Inherited修饰的annotation类型被用于一个class,则这个annotation将被用于该class的子类。

      注意:@Inherited annotation类型是被标注过的class的子类所继承。类并不从它所实现的接口继承annotation,方法并不从它所重载的方法继承annotation。

      当@Inherited annotation类型标注的annotation的Retention是RetentionPolicy.RUNTIME,则反射API增强了这样的继承性。假设我们使用java.lang.reflect去查询一个@Inherited annotation类型的annotation时,反射代码检查将展开工作:检查class和其父类,直到发现指定的annotation类型被发现,或者到达类继承结构的顶层

    自己定义注解:

      使用@interface自己定义注解时,自己主动继承了java.lang.annotation.Annotation接口,由编译程序自己主动完毕其它细节。

    在定义注解时。不能继承其它的注解或接口。@interface用来声明一个注解。当中的每个方法实际上是声明了一个配置參数。

    方法的名称就是參数的名称,返回值类型就是參数的类型(返回值类型仅仅能是基本类型、Class、String、enum)。能够通过default来声明參数的默认值。

      定义注解格式:
      public @interface 注解名 {定义体}

      注解參数的可支持数据类型:

        1.全部基本数据类型(int,float,boolean,byte,double,char,long,short)
        2.String类型
        3.Class类型
        4.enum类型
        5.Annotation类型
        6.以上全部类型的数组

      Annotation类型里面的參数该怎么设定: 
      第一,仅仅能用public或默认(default)这两个訪问权修饰.比如,String value();这里把方法设为defaul默认类型;   
      第二,參数成员仅仅能用基本类型byte,short,char,int,long,float,double,boolean八种基本数据类型和 String,Enum,Class,annotations等数据类型,以及这一些类型的数组.比如,String value();这里的參数成员就为String;  
      第三,假设仅仅有一个參数成员,最好把參数名称设为"value",后加小括号.例:以下的样例FruitName注解就仅仅有一个參数成员。



  • 相关阅读:
    迅雷的工作原理 [揭密迅雷]
    揭密迅雷BT式下载本质 [揭密迅雷]
    2010年8月09日_周一_Toc control
    2010年8月08日_周日_MapCopyrightText control
    2010年8月08日_周日_Magnifier control
    2010年8月07日_周六_HoverExpandExtender control
    2010年8月11日_周三_ZoomLevel_control
    ArcGIS Server网站发布后地图显示空白的原因之一
    2010年8月10日_周二_TaskManagercontrol
    搭建一个简单的callBack函数
  • 原文地址:https://www.cnblogs.com/slgkaifa/p/6737030.html
Copyright © 2020-2023  润新知