2.4.1、注解介绍

大纲:0.0、android学习笔记_大纲

源码地址:https://github.com/ldy1993/ToolforAS.git

注解的作用:

我们经常看有@Override、@SuppressLint("NewApi")这些字样。这些就是注解。他的本意就是是一个标签。例如我们把他贴着类里面部分成员对象里。然后在这个类的代码里面可以去找到哪些成员变量贴了标签,对贴了标签的对象进行初始化或者其他代码功能的操作

我们先简单举个例子,以理解注解的本质。

第一步,创建注解

我们发现一个有趣的事情是注解的名称@interface,和接口interface好像。其实注解的格式也是接口差不多。只不过注解可以对定义的方法赋值。可能是把这个方法当做了成员变量那样使用。

第二步,使用注解

 这里意味着我们需要在代码中使用这个注解的标签。如下

这里有两个细节。

如果在注解创建的时候,只有一个value值。并且名称为value(),那么使用注解就不用特意指明这个value值是多少。如果有两个,需要在使用的时候使用(key=value,...)的模式,

如果不使用default默认值,那么使用注解的时候就一定要指明属性的值。

如下

......
public @interface OnBind {
    String value() default "默认值";
    String name()
}
......
    @OnBind(value="临时值",name="张三")
    private String temp;
    @OnBind(name="张三")
    private String defaultValue;

 第三步,处理注解。

上面,我们只是告诉我们的代码哪些成员或者方法需要加载哪些标签。并没有说明加了这些标签的成员对象需要做什么特殊处理。下面我们就需要写代码进行处理。

我们在onCreate中通过field的getAnnotation方法获取到我们注解标签,然后显示他的值。

这样试了没有问题后,我们发现一次只能获取一个标签。我们注解是对整个项目生效的,这样每一个类都需要进行注解处理。非常麻烦。于是我们把它剥离开来。创建一个编译器类。专门用于处理该注解的内容。

首先是在同一个类里面遍历所有的成员。如下,使用蓝色框代替红色框内容。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值