开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第7天,点击查看活动详情
这篇文章我们来介绍一下在java 中如何自定义注解。
背景知识
元注解我们都知道有四个
- @Retention
- @Documented
- @Target
- @Inherited
对于这四个元注解的作用我们不再过多介绍,我们只需要知道它们的使用方式即可。
在Java 相关的各种框架中,其实有很多已经写好的内置的注解。对于已经写好的注解,我们只要了解其使用方式即可。我们更多的需要关注的其实是如何进行自定义注解。
当我们查看某个框架的时候,如果点进去这个注解的定义,就会发现其中并没有什么业务逻辑的定义。
其实注解仅仅是一个“标记”的作用,如果我们想使用这个注解,其实就是需要用到Java 的另一个特性:“反射”的功能。
我们将注解标记到某个字段、方法、类或者其他位置,通过反射,获得这个注解的标记的位置,拿到注解上写的一些值,然后就可以做我们自己的操作了,如:做一些逻辑的判断,业务逻辑的补充等等。
自定义注解的简介
在自定义注解的时候,我们需要使用@Interface 关键字来声明这个代码块后面的内容是“注解”相关的内容。举例如下:
@Documented
@Target(ElementType.ANNOTATION_TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotationExample {
String name() default "小明";
public int age();
}
在定义注解的时候,我们会发现,它和定义接口的结构很相似。其中,元素类型只能是基本数据类型、String、class、枚举、注解类型。或者是上述各类型的一维数组。
在使用的时候,我们常常会发现注解后面的括号中可以写一些参数,一般使用注解的方式为:注解名+参数名+参数。如:
@MyAnnotationExample(value="小红", age=13)
总结
这篇文章我们介绍了自定义注解的一些背景知识和自定义注解的方式,内容通俗易懂,读者应该一看就明白。