打个比方,java注解是一份代码的元数据,就像一场足球比赛,我们拿到的是一个关于对方球员的具体信息。
java给不同类型的代码,增加注解,注解就相当于是一个贴标签的行为。并且这样的标签,随着代码进入不同的生命周期,起着不同的作用。有的在编译的时候就没有了,有的在运行的时候仍然可以被jvm读取到。
就像一场足球比赛,我们要给不同位置上的球员,去贴标签。比如一支球队里有人,被贴上了伤病的标签,替补的标签,教练的标签。所以一部分人是没有办法登场的,登场的,只有那些进入了上场队员名单的人才,可以最终在球场上看到他们。
在上场的球员里面,我们又可以给不同位置上的球员贴上标签,比如他是前锋,后卫,中场守门员。即便对于一个位置上的球员,他是,速度型的,还是支点型的,我们也可以对它进行标签,并且,根据它的不同类型,我们采取不同的防守或者攻击策略。这样的策略就需要我们去获取,java注解的元数据。说到获取元数据,那么,肯定需要用到反射机制,此处省去200字。
综上所述,java的注解就是一个给代码贴标签的行为。
那么我们需要关注的,也就是说他在什么时间可以起到作用?在什么对象上面可以起到作用?