所谓注解,其实就是代码里的特殊标记,这些标记可以在编译,类加载,运行的时被程序识别,并执行相应的行为。
值得指出的是,Annotation不影响程序代码的执行,无论删除,增加Annotation,代码都始终如一的执行。
五个基本Annotation
- @Override
- @Deprecated
- @Suppress Warnings
- @Safe Varargs
@FunctionalInterface
@Override
@Override 就是用来指定方法覆载,它可以强制一个子类必须覆盖父类的方法。怎么用呢,@Override是告诉编译器检查这个方法,保证父类要包含一个被该方法重写的方法。避免比如你想重写info()方法,却手误写成了inf(),编译器不会报错,你可能找半天才能找到错误。
@Deprecated
@Deprecated 用于表示某段程序已经过时
@SuppressWarnings
@SuppressWarnings 指示被该注解修饰的程序取消显示指定的编译器警告
@SafeVarargs
@SafeVarargs一般用于堆污染 即把一个不带泛型的对象付给一个带泛型的对象
@FunctionalInterface
@FunctionalInterface用来指定某个接口必须是函数式接口,即告诉编译器检查这个接口,保证该接口只能包含一个抽象方法,否则就报错