Java 中自定义注解的使用方法

100 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

使用注解完成业务逻辑的精髓

我们应该知道,在Java 中,注解其实就仅仅只是一个标记而已。其代表的业务逻辑是需要在其他位置来完成的。

对于注解来说,它的参数在定义的时候,和普通的java 语法相对比,是有一些不一样的。

因为注解中的参数虽然可以赋值,但又很有方法的特征(定义的时候需要在末尾加上一对括号)。在定义好之后,使用的时候,操作元素类型,就像是在操作属性;解析的时候,操作元素类型,就像在操作方法

或者说,这个注解只是标记了一个位置,我们想要的这个位置的标的物做一些什么操作的话,是需要想一些其他办法的。

有的读者就会比较疑惑了,我的代码都写好了,还怎么可能对这个标记的位置做什么操作呢?

另外我们需要说明的是,在自定义注解的时候,我们很多情况下都是使用@Retention(RetentionPolicy.RUNTIME)元注解来修饰自定义的注解的。

这样一来,只有在JVM运行时,系统才可以检测到注解的存在,才能进行一系列特殊的操作。

我们考虑一下Java 的语言特性,虽然Java 不是动态语言,但是它却被称为“准动态语言”。

我们知道Java 有一种特性:“反射”。

通过反射,我们就可以获取得到这个注解的标记位置,同时可以针对被标记的内容做一些逻辑上的操作了。

通过上面的描述我们可以得到一个结论,同时可以确定一个目标:在java 运行期间,如果想使用编译期间的内容(编译的时候配置的注解),那么就需要用到java 的反射技术来完成。

总结

通过上文,我们就知道:

  1. 注解负责标记
  2. 反射负责增加业务逻辑

通过注解+反射,可以完成在不修改原有代码的情况下增加业务逻辑功能。