Java5.0引入的新特征 ,位于java.lang.annotation包中 。
注解的作用是提供一种高耦合的配置方式,效率较高,比较方便,但耦合度高。
注解的本质就是一个继承了Annotation接口的一个接口,比如@Override注解的本质。
public interface Override extends Annotation{ }
解析的方式有2中,1是编译时扫描,2是运行时反射。
编译器扫描指的是编译器在对 java 代码编译字节码的过程中会检测到某个类或者方法被一些注解修饰,这时它就会对于这些注解进行某些处理。
以@Override为例:编译器监测到了某方法被@Override注解,编译器就会检查当前方法是否重写了父类的否个方法。
自定义注解:
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.SOURCE)
public @interface InnotationName
{
}
@Target(ElementType.METHOD) 和 @Retention(RetentionPolicy.SOURCE) 称之为元注解,用来给注解注解。
元注解有4中:
@Target:注解的作用目标,比如注解在方法,类等
@Retention:注解的生命周期,编译时可见,类加载阶段丢弃,永久保存(可以反射获取)
@Documented:注解是否应当被包含在 JavaDoc 文档中
@Inherited:是否允许子类继承该注解
JAVA 3大内置注解
@Override (检查重写)
@Deprecated (弃用,不推荐使用)
@SuppressWarnings (压制警告,)
未完待续
原文:https://www.cnblogs.com/fishing-with-carrots/p/13915751.html