Android 注解入门

来源:互联网 发布:mp3拼接软件 编辑:程序博客网 时间:2024/06/11 22:37

注解

注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释.

注解分类

  1. 标示注解: 成员个数为0
  2. 单值注解: 成员个数为1
  3. 完整注解: 成员个数大于1
  4. 系统注解: 系统提供的注解
  5. 元注解: 为注解所注解

系统注解


@override

被修饰的方法必须为父类方法重写, 标示为该方法是方法重写

@Deprecated

被修饰的方法的方法名出现删除线, 标示为该方法已被废弃, 该修饰有继承性, 父类拥有所有子类都将被废弃.

@SuppressWarnings(可变参数)

​ 解除编译器的警告, 提供多种参数

元注解


元注解的作用就是负责注解其他注解

@Target(可变参数)

规定注解的作用范围

@Retention(可变参数)

规定注解的生命周期时间

@Documented

注解会在生成Doc文档时保留注解

@Inherited

规定注解被子类继承, 该注解只能修饰类, 且类必须被@Retention(RetentPoicy.Runtime)修饰

依赖注入


依赖:自定义一个注解, 在运行期使用注解参数.

自定义注解

@interface 类型的代码块就是注解, 与接口和类是同一级别

注意

  1. 参数成员类型只能是基本类型, 即int, float..等
  2. 成员访问权修饰符和接口interface一样, 默认public
示例:

注解

@Target(ElementType.FIELD)// 这里必须保证注解是生命周期是运行时, 因为反射是运行时才生效, 如果注解再运行时之前就被擦除,反射将无法获取注解的参数@Retention(RetentionPolicy.RUNTIME)public @interface CustomAnnotation {     String value(); // 和接口的成员}

工具方法

    public static void parseAnnotation(Object obj) throws IllegalAccessException {        System.out.println("进入");        Class<? extends Object> objClass = obj.getClass();        Field[] fields = objClass.getFields();        System.out.println(fields.length);        for (Field field : fields) {            System.out.println("循环");            // 判断该字段是否存在CustomAnnotation注解            if (field.isAnnotationPresent(CustomAnnotation.class)) {                System.out.println("运行");                // 得到该注解对象                CustomAnnotation customAnnotation = field.getAnnotation(CustomAnnotation.class);                // 得到注解的成员                String value = customAnnotation.value();                // 传入对象设置字段                field.set(obj, value);            }        }    }

因为我只需要执行java代码即可, 所以在测试类中执行

public class ExampleUnitTest {    @CustomAnnotation("程序吴彦祖")    public String name ;    @Test    public void addition_isCorrect() throws Exception {       ParseAnnotation.parseAnnotation(this);        System.out.println(name);    }}

结果:

如果注解有多个成员方法, 即完整注解, 则在注解的时候需要规定格式方法名 = 值

    @CustomAnnotation(value = "程序吴彦祖", number = 4)    public String name;
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 急用钱逾期不还怎么办 急用钱借款不还怎么办 做b超按压疼痛怎么办 做b超没有尿怎么办 b超憋不到尿怎么办 做b超前没有尿意怎么办 肝胆b超前喝水了怎么办 肝胆彩超喝水了怎么办 胆囊b超喝了水怎么办 系统b超照不到怎么办 思维彩超宝宝不动怎么办 怀孕七个月胎儿缺氧怎么办 怀孕29周小孩偏小怎么办 孕29周胎儿臀位怎么办 刚怀孕有囊肿该怎么办 食杏中毒怎么办吃什么 猫吃了扁桃仁怎么办 夏天来了??点狐臭怎么办? 我有一小点狐臭怎么办 淘客网站被微信屏蔽怎么办 微信老是屏蔽网站怎么办 华帝售后没人理怎么办 新开的网店没生意怎么办 淘小二介入买家举证不全怎么办 新股申购中签后钱不够怎么办 买的东西收不到怎么办? 拼多多按错收货怎么办 团购招生做到一半不如意怎么办 网购付款后卖家没有货怎么办 淘宝退货商家不同意退款怎么办 淘宝确认收货后卖家拒绝退款怎么办 淘宝卖家不同意退款怎么办 淘宝仅退款卖家不处理怎么办 淘宝申请退款卖家不处理怎么办 快递没收到货要退款怎么办 发票给了不给钱怎么办 付款后不给发票怎么办 供货商不给发票怎么办 刚生过孩子太胖买衣服怎么办 黑色牛仔裤洗的发白怎么办 蘑菇街手机丢了怎么办