概述:最近在看一个swing项目代码,为了全面了解这个项目,计划是把项目中所有的能打开的文件都看一遍,其中看到了一个annotation的文件夹,这里存放的都是一些自定义注解类。上大学那会确实学过这块的内容,不过也忘记的差不多了。然后借这个看代码的机会重新学习了一下,写这个博客也是为了加深对这块内容的理解。
Java中JDK自带常用的注解:
1、@Override
说明:检查该方法是否为重写方法。常见于接口实现类或者继承类。
2、@Deprecated
说明:废弃某个方法,如果用在某个方法之上,编辑器会提示该方法已废弃。常见于一些项目中使用的三方库或jdk的新版,提示他的旧版本中的某个方法已废弃。当你仍然使用这个废弃的方法时会有划线提示已过时。举个例子比如多线程中的stop()方法,目前在jdk1.8版本下使用该方法终止线程编辑器是提示废弃的,因为不安全。
3、@SuppressWarnings
说明:忽略警告信息。常见于eclipse编辑器有黄色波浪线警告信息,在警告上方添加这个注解,可以消除警告提示,深受强迫症大猿喜爱。
Java中JDK自带常用元注解:元注解就是可以对注解进行标注的注解。就jdk1.8来讲大概有7个元注解,常用的会写详细一点,不常用的就不详写了,常用的也就两个Retention与Target。
1、@Retention 用于标识某个注解在什么地方有效,他有三个参数,源码文件中,字节码文件中,编译和运行时的VM中。(该元解在自定义注解时常用)
使用举例:@Retention(RetentionPolicy.RUNTIME)
参数源码例图:
2、@Target 用于标识某个注解在什么位置使用,位置有10中,常见于类、接口上(TYPE),字段上(FIELD),方法上(METHOD),方法中的参数上(PARAMETER),构造方法上(CONSTRUCTOR),局部变量上(LOCAL_VARIABLE)等等。(该元解在自定义注解时常用)
使用举例:@Target(ElementType.METHOD)
参数源码示例图:
3、@Documented 标识注解是否包含在用户文档中。
4、@Inherited 标识注解是继承于哪个注解类(默认 注解并没有继承于任何子类。
5、@SafeVarargs 从Java 7 开始支持,忽略任何使用参数为泛型变量的方法或构造函数调用产生的警告 。
6、@FunctionalInterface 从Java 8 开始支持,标识一个匿名函数或函数式接口。
7、@Repeatable 从Java 8 开始支持,标识某注解可以在同一个声明上使用多次。
自定义注解:
实例截图:
实例说明:
自定义注解,@AxisOnStateChanged 是一个在方法上使用的注解,在编译及运行时生效。