前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java注解Annotation

Java注解Annotation

作者头像
用户1205080
发布2018-09-12 10:06:40
4920
发布2018-09-12 10:06:40
举报
文章被收录于专栏:编码前线

概述

注解(Annotation):是元数据的一种形式,能够添加到Java源代码,Java中的类、方法、变量、参数、包都可以被注解。注解对他们所注解的代码没有直接的影响。 注解的使用可以简化代码,提高开发效率。 在Android中,用到注解的开源库有:Retrofit、ButterKnife、Dagger。

Annotation分类

标准Annotation

标准Annotation是指Java自带的几个Annotation:

@Override@Deprecated@SuppressWarnings

元Annotation

元Annotation是指用来定义Annotation的Annotation:

@Documented:保存到Javadoc文档中。

@Retention:保留时间,可选值SOURCE(源码)、CLASS(编译时)、RUNTIME(运行时);默认为CLASSSOURCE大都为Mark Annotation,这类Annotation大都用来校验,如Override。

@Target:表示该注解可以修饰那些程序元素,值为:TYPEMETHODCONSTRUCTORFIELDPARAMETER等,未标记则表示可修饰所有。

@Inherited:是否可以被继承,默认为false。

自定义Annotation

根据自己需要进行自定义的Annotation,定义时需要用到上面的元Annotation。

Annotation自定义

定义

语法说明

1. 通过@interface定义,注解类名即为注解名;

2. 注解配置参数为注解类的方法名:

(1)所有的方法没有方法体,没有参数,没有修饰符,不允许抛出异常;

(2)方法的返回值只能是基本类型、String、Class、enum、Annotation、及他们的一维数组;

(3)若只有一个默认属性,可直接用value()函数;

(4)若一个属性都没有的表示该Annotation为标记注解(Mark Annotation)如@Override;

(5)可以加default表示默认值。

调用

Annotation解析

运行时Annotation解析

(1)运行时Annotation指@RetentionRUNTIME的Annotation。

(2)常用API

(3)解析示例:

运行结果:

编译时Annotation解析

(1)编译时Annotation指@RetentionCLASS的Annotation,由编译器自动解析。

(2)自定义类继承自AbstractProcessor,并重写其中的process函数。

示例代码:将上面的Request的@Retention改为CLASS:

参考链接

  1. http://a.codekk.com/detail/Android/Trinea/公共技术点之%20Java%20注解%20Annotation
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-08-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 编码前线 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概述
  • Annotation分类
    • 标准Annotation
      • 元Annotation
        • 自定义Annotation
        • Annotation自定义
          • 定义
            • 调用
            • Annotation解析
              • 运行时Annotation解析
                • 编译时Annotation解析
                • 参考链接
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档