Android 注解

Android 应用开发对注解的应用达到了淋漓尽致的地步,无论是运行是注解,还是编译时注解,或是标准注解,都被广泛应用。Android Support Library 专门推出注解库Support Annotation,各种开源函数库也应用注解,例如REST网络请求。

注解的定义
注解是java语言的特性之一,它是在源代码插入的标签,这些标签在后面的编译或者运行过程中起到某种作用,每个注解都必须通过注解接口@interface进行声明,接口的方法对应着注解的元素

注解的定义和接口的接口非常像,在interface的前面多了一个@

public @interface TestPerson
{
  //name既是这个注解的属性,也是注解的方法,调用name()返回值就是name
  String name() default gavin;
}

注意:千万不能把前面的@符号弄掉了,弄掉了就成了接口的定义了,注解接口中的方法没有参数,没有throws语句,也不能泛型。

标准注解
java api 定义的注解我们称之为标准注解

编译相关的注解是给编译器用的,如下:
@Override:相信大家非常熟悉,就是表明这个方法是改写了父类的方法
@Deprecated:表示在新版本的 jdk中已经不建议使用这个方法或者属性
@SuppressWarning:就是屏蔽掉一些警告

Override就是用在方法上的注解,Deprecated是既可以用在方法上面,也可以用在类上面,我们直接看看Override是怎么实现的吧

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.SOURCE)
public @interface Override {
}

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(value={CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, PACKAGE, PARAMETER, TYPE})
public @interface Deprecated {
}

我们发现这两个注解在定义的过程中都使用了其他的注解,像Target和Retention这种注解叫做元注解,我们分别看看它们的意思吧

元注解 – 定义和实现注解的注解

@Target注解的功能就是表明你这个注解是用在什么地方的,它的值是一个枚举型

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

Retention注解的功能差不多说明的就是你的注解的生命周期吧,就是什么时候失效,它的值如下

  • 1.SOURCE:在源文件中有效(即源文件保留)【源码级注解】
  • 2.CLASS:在class文件中有效(即class保留)【编译时注解】
  • 3.RUNTIME:在运行时有效(即运行时保留)【运行时注解】
    未指定类型,默认是CLASS类型
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值