自定义java注解【原创】

2019-05-23  本文已影响0人  程序员不会写代码

注解的用途

在实际的java开发中我们会使用各种各样的注解,每个注解都有不用的作用,也有不同的作用范围,比如长见的@Override注解,在重写父类方法的时候会出现,最常见的地方就是接口的实现类中,再有就是在方法入参的时候经常需要用到的lombok的@NonNull注解,有了这个注解就可以控制入参参数不为null,不需要自己手动实现校验逻辑。大多数的注解并没有实现注解名称对应的功能,仅仅是起到标记的作用,真正起作用的或者实现这些功能的代码逻辑在其他的class文件中,关于如何通过注解实现某些功能下个章节在将,这个章节只讲如何创建自定义注解

先来看下lombok中@NonNull注解

lombok中的@NonNull注解

这是一个标记注解,结构非常的简单,只是在interface前面加上了@符号,上面多了几个其他的注解而已

@Target注解以及其中参数作用:表明这个注解能用在哪些地方,target里面可以放多个值每个值对应如下

1.ElementType.CONSTRUCTOR:用于构造器

2.ElementType.FIELD:用于属性

3.ElementType.LOCAL_VARIABLE:用于局部变量

4.ElementType.METHOD:用于方法

5.ElementType.PACKAGE:用于包

6.ElementType.PARAMETER:用于参数

7.ElementType.TYPE:用于类、接口(包括注解类型) 或enum声明

注解类上的其余注解的作用

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

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

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

一般来说,自定义注解的使用范围不要写的太宽,按照自己的使用场景在target中的选择合适的范围就行

以下是我在项目中使用的两个标记注解

只能用来标记入参的参数 只能用来标记方法
上一篇下一篇

猜你喜欢

热点阅读