51

Java注解总结

 5 years ago
source link: https://wenshixin.gitee.io/blog/2018/09/27/Java注解总结/?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

阅读文本之前,强烈推荐先阅读此文 《Java注解是怎么成功上位的?》 ,作者写的真是精彩!令人非常佩服。

D:%5CCodeWorkspace%5CGitRepository%5CSelfFlying%5Csource%5C_posts%5CJava%E6%B3%A8%E8%A7%A3%E6%80%BB%E7%BB%93%5CJava%E6%B3%A8%E8%A7%A3%E6%80%9D%E7%BB%B4%E5%AF%BC%E5%9B%BE.jpg

Java 注解又称为是 Java 标注,它是一种描述 Java 源代码的特殊语法和元数据,对于 Java 中的注解,有人称为是增强版的注释,有人称之为一种特殊的配置方式,这些理解都是从注解的作用上来说的。大多数 Java 编程者应该都用过注解,Java 中定义了一些注解,也定义了用来自定义注解的元注解。

Java 注解的分类如下:

1、已经定义好的注解:可以称为是普通注解,包括 Java 自带的,如 @Override,第三方框架(库)定义的,如 Spring 里面的 @Autowired,当然我么也可以自定义一些我们要用的注解。

2、用来定义注解的元注解:可以称为是特殊注解,如何定义一个注解的方法。

普通注解在 java.lang 包下,而特殊注解在 java.lang.annotation 包中。Java 5 开始支持注解,引入了 @Override、@Deprecated、@SuppressWarnings,Java 7 又引入了 @SafeVarargs,Java 8 又新增了 @FunctionalInterface、@Repeatable;Java 5 就引入了 @Retention、@Documented、@Target、@Inherited 四个元注解,Java 8 又引入了 @Native 和 @Repeatable 注解。下面来详细介绍一下这些注解。

普通注解:

  • @Override:检查该方法是否是重写方法。如果发现其父类,或者是引用的接口中并没有该方法时,会报编译错误,这个注解只是起到一个提示的作用,表明这个方法是被 override 了。

  • @Deprecated:标记过时方法。如果使用该方法,会报编译警告,这个注解是提醒开发者最好不要使用这个方法了,强制使用,IDE 会给该方法加上删除线。

  • @SuppressWarnings:指示编译器忽略注解中声明的警告,有代码洁癖的,看着警告非常不爽,可以在任何地方加上该注解,这样就忽略这些警告了。

  • @SafeVarargs:忽略任何使用参数为泛型变量的方法或构造函数调用产生的警告。

  • @FunctionalInterface:标识一个匿名函数或函数式接口。
  • @Repeatable:标识某注解可以在同一个声明上使用多次。

元注解(特殊注解):

  • @Retention:标识这个注解怎么保存,是只在代码中,还是编入class文件中,或者是在运行时可以通过反射访问,用来定义注解的生命周期。
  • @Documented:标记这些注解是否包含在用户文档中,又该注解声明的注解,在生成 JavaDoc 文档时会带上这些注解。
  • @Target:标记这个注解应该是哪种 Java 成员,表示注解可以用在什么地方,类上,方法上、属性上等等。
  • @Inherited:标记这个注解是继承于哪个注解类(默认注解并没有继承于任何类)。

  • @Native:用来表示域中定义的常量可能来自于本地代码。

注解的好处

  • 有助于提高阅读性。
  • 和代码紧耦合

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK