Java-注解的理解与使用-(原创)

注解 所谓何物 ?

在应用代码中

比如在Java我们经常会看到诸如@Override,@Deprecated等,

在Android开发中,使用Dagger2这个注入框架,我们肯定会使用到@Inject,@Provide,@Component等

后来,人们为了统一说法,这样的玩意,江湖中人称之为 注解(英文名 :  Annotation).

注解 :

注解是代码里的特殊标记,这些标记可以在编译、类加载、运行时被读取,并执行相应的处理。

通过使用注解,攻城狮可以在不改变原有逻辑的情况下,在源文件中嵌入一些补充的信息。

简而言之,注解用一个词就可以描述注解,那就是元数据,即一种描述数据的数据.

扩展 : 可能有人会问,元数据,是神马,这里继续补充,

元数据, 通俗一点,就是描述代码间关系,或者代码与其他资源(例如数据库表)之间内在联系的数据。

在简单点理解,我们去银行办卡,填写姓名,年龄,身份证号码,电话等等,全部填写完毕之后 在提交给银行的工作人员

那么,诸如 姓名,年龄,身份证号码,电话等等的这些,我们就可以称之为 元数据.

注解的特点 :

注解只提供了一种为程序元素(包、类、构造器、方法、成员变量、参数、局域变量)设置元数据的方法。

注解不能运行,它仅只有成员变量,没有方法。

注解跟public、final等修饰符的地位一样,都是程序元素的一部分,但是,注解不能作为一个程序元素使用。

注解的方法 :

关于注解,J2SE5.0版本在 java.lang.annotation提供了四种元注解,专门注解其他的注解:

@Documented –注解是否将包含在JavaDoc中

@Retention –什么时候使用该注解  

@Target –注解用于什么地方 

@Inherited – 是否允许子类继承该注解


如何自定义注解 :

如何自定义注解?我们习惯了new Class,其实, 注解一直都在,只是我们不曾看过


创建Annotation

我们模仿ButterKnife,写一个BindView的注解玩一玩,于是乎,我们有了下面的代码:


基本的用法


在这里,我们给自定义加了两个方法,

接下来,我们自定义一个使用了该注解的JavaBean类,如下图


使用自定义注解的类

那么,接下来问题来了,我该如何获取这个自定义注解上的值???

这个时候,细心的同学可能发现,咦,你这个Student类上的自定义注解上的name以及age的顺序和自定义上的注解顺序不一致,这样不会有影响吗?嗯,是的,没影响。言归正传,获取自定义注解上的值我们可以通过反射去做,对反射不是很了解的话,可以查看我的这片博客 关于反射快速理解,

在这里,我们假定外部传来一个Student对象,通过这个对象暴力反射获取字段,根据其字段获取注解上的值,我们将获取到的值设置给上面的Student类上,然后通过打印控制台显示结果,

第一步,获取注解上的值,先上代码图

获取使用注解类上的注解值

1;通过暴力反射获取成员变量

2;细心的同学可能会发现,使用了自定义注解的成员变量是name字段,那么通过该字段获取注解的字节码

3;通过第2个步骤,即可获取到具体的值

4;在反射里面说到,给类里面的变量赋值,通过set方法


第二步:测试以上代码,能否获取注解上的值,先上图


测试获取自定义注解的值


基本上,注解的简单介绍和使用,就是以上内容,如果需要深入了解,可以自己查阅资料。

如果这篇文章对您有开发or学习上的些许帮助,希望各位看官留下宝贵的star,谢谢。

Ps:著作权归作者所有,转载请注明作者, 商业转载请联系作者获得授权,非商业转载请注明出处(开头或结尾请添加转载出处,添加原文url地址),文章请勿滥用,也希望大家尊重笔者的劳动成果

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,834评论 25 707
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,637评论 18 139
  • #打卡# 05月04日 周四 天气多云 青年节快乐 【我的进度】日跑2公里第312天,计划坚持1年;每日5点15分...
    龙马行天下阅读 176评论 0 1
  • 翻看手机日历,显示今天是小雪(24节气之一)。 尽管这周第一天上班开始,我们已经感到了冬的寒意,身上的衣服已经变成...
    江湖小议阅读 286评论 0 1