一,基本注解
(1)@Override 用在方法上,表示这个方法重写了父类的方法,如toString()。
如果父类没有这个方法,那么就无法编译通过类Object
(2)@Deprecated 表示这个方法已经过期,不建议开发者使用。(暗示在将来某个不确定的版本,就有可能会取消掉),在调用时会受到提示
(3)@SuppressWarnings Suppress英文的意思是抑制的意思,这个注解的用处是忽略警告信息。
比如大家使用集合的时候,有时候为了偷懒,会不写泛型,像这样:那么就会导致编译器出现警告,而加上
就对这些警告进行了抑制,即忽略掉这些警告信息。(4)@SafeVarargs 这是1.7 之后新加入的基本注解. 如例所示,当使用可变数量的参数的时候,而参数的类型又是泛型T的话,就会出现警告。 这个时候,就使用 @SafeVarargs来去掉这个警告
(5)@FunctionalInterface这是Java1.8 新增的注解,用于约定函数式接口。 函数式接口概念: 如果接口中只有一个抽象方法(可以包含多个默认方法或多个static方法),该接口称为函数式接口。函数式接口其存在的意义,主要是配合 Lambda来使用。
以上5个都是内置注解,从开发过程中的体验来讲,有也可以,没有也可以,没什么大的卵用~ 大家晓得有这么回事就行了,重点还是后面要讲解的。
二,自定义注解
创建注解类型的时候即不使用class也不使用interface,而是使用@interface
详细看这里: http://how2j.cn/k/annotation/annotation-customize/1056.html#nowhere
元注解可以用来注解自定义注解
三,元注解
在讲解元注解概念之前,我们先建立元数据的概念。 元数据在英语中对应单词 metadata, 是:
Metadata is data [information] that provides information about other data 为其他数据提供信息的数据 这样元注解就好理解了,元注解 meta annotation专门用于注解 自定义注解 的注解。 元注解有这么几种: @Target @Retention @Inherited @Documented @Repeatable (java1.8 新增)
详细看这里:http://how2j.cn/k/annotation/annotation-meta/1057.html#nowhere
https://www.cnblogs.com/huajiezh/p/5263849.html