Java Annotation
注解也就是元数据,可以在代码中添加一些信息,而不改变原有的逻辑。
Annotation接口
系统自建的和自定义实现的注解都必须实现这个接口
public interface Annotation {
boolean equals(Object obj);
int hashCode();
String toString();
Class<? extends Annotation> annotationType();
}
系统自建的Annotation
Java 1.8 有5个自建的Annotation(lang包中,其他的还不确定),
- Override(1.5)
- Deprecated(1.5)
- Suppress Warnings(1.5)
- SafeVarargs(1.7)
- FunctionalIterface(1.8)
Override
用于方法重写,确保方法重写的正确性。
Deprecated
用来声明一个不建议使用的方法,一般指这个方法已经废弃了。
一般会出现警告,但是程序仍然会正常执行。
除了可以用在方法之前也可以用在类之前,表示一个不被推荐使用的类,常见于一些比较老的类,往往有新的类进行替代。
SuppressWarning
主要是用来压制警告
自定义Annotation
定义格式
eg:
public @interface AnnotationName{
数据类型 变量名称();
}
在Annotation中设置内容
Annotation和反射
也许需要在框架的源码中继续学习
@Target
明确的指出了一个Annotation的使用位置
@Documented
用于生成Javadoc时添加一些注释
@Inherited
用于声明一个父类的注解能否被子类继承,可以通过反射进行测试